Що таке глобальні змінні в wordpress список змінних

Зауважу, що якщо є рівнозначний варіант отримати дані через функцію, то краще отримує через функцію. Тому що це може позбавити від багів в майбутньому - при оновленні в наступних версіях, назва глобальної змінної може змінитися. А то що змінитися назва функції - це мало ймовірно. До того ж, змінені функції не видаляються, а йдуть в розділ заборонені, але як і раніше продовжують працювати. Ось такий приклад:

Що таке глобальні змінні?

Коротко - це змінні PHP, які «видно» всюди.

Щоб отримати доступ до глобальної змінної перед нею потрібно вказати ключове слово global:

Або можна використовувати супер-глобальний масив $ GLOBALS:

Глобальні змінні - це звичайні змінні, які визначені в глобальній області (основної частини) PHP. Щоб зрозуміти що таке глобальна область, уявіть найперший php файл, зазвичай це index.php - це глобальна область коду (глобальний контекст). Якщо в такому файлі визначити змінну, то вона автоматично стане глобальною. Але якщо в такому файлі створити функцію і визначити змінну всередині цієї функції, то вона буде локальної - область видимості такої змінної не виходить за межі функції. Те ж стосується класів і їх методів (функцій).

А що, якщо в «глобальний» файл підключається інший файл? Припустимо, в головний файл index.php ми підключаємо ще один файл wp-load.php - require_once 'wp-load.php' ;. Код цього підключеного файлу також стає глобальним, і змінні безпосередньо визначені в цьому файлі теж автоматично стають глобальними.

Щоб зрозуміти як працюють глобальні змінні, розглянемо приклад. Припустимо, код нижче ми вставляємо в файл теми functions.php. який в свою чергу підключається до глобальної область видимості і будь-які змінні зазначені в ньому безпосередньо, стають глобальними.

Цей код пояснює суть глобальних змінних, як їх видно і не видно всередині функцій.

Глобальну змінну можна створити з локальної області видимості, наприклад з функції:

Замітка: ключове слово global виставляє посилання на зазначену змінну, а не створює нову. Ці конструкції еквівалентні:

Важливо! Використовувати глобальні змінні потрібно обережно!

Глобальних змінних дуже багато і їх легко змінити. Наприклад, якщо на початку файли теми header.php написати $ id = 2 ;. то глобальна змінна $ id. яка містила ID поточного запису змінитися і використовувати її вже не можна!

Подібним чином тема або плагіни можуть змінювати глобальні змінні. Але все ж, серед глоб. змінних є, скажімо так «зайняті», про які повинен знати кожен розробник і не повинен використовувати їх в якості глоб. змінних при створенні плагіна або теми. Якраз цей список і приведений в цій статті.

Змінні не з цієї статті використовувати в коді не рекомендую. Замість них слід знайти альтернативне рішення отримати потрібні дані, наприклад за допомогою відповідної функції.

Повернемося до WordPress.

Під час генерації сторінки, WordPress отримує купу даних і важливі з них зберігаються в глобальних змінних. Наприклад: ID рубрики на сторінці рубрики - $ cat. Або всі отримані пости на сторінці рубрик - $ wp_query. Або об'єкт поста на сторінці поста - $ post.

Перейдемо до списку глобальних змінних в WordPress, які найчастіше можна використовувати в коді. Зрозуміло це не повний список - глобальних змінних в WordPress о-дуже багато.

Всередині циклу WordPress

У циклі записів

Ці глобальні змінні можна використовувати всередині циклу WordPress. Вони змінюються по ходу перебору елементів в циклі. Всі вони містять інформацію про поточну записи (пості) в циклі.

Всі змінні запиту WP_Query

Всі змінні основного запиту WP_Query. виносяться в окремі глобальні змінні. Таким чином, ми можемо отримувати дані з глобальної області.

Нижче список таких змінних, але використовувати їх я не рекомендую, тому що назви у більшості з них дуже вже прості (популярні):

У лицьовій частині (фрон-енді)

$ Template (рядок) Шлях до файлу шаблону, який відповідає за виведення HTML коду поточної сторінки. Наприклад: C: /sites/wptest.ru/www/wp-content/themes/twentyfifteen/archive.php

$ Current_screen (масив) Дані поточного екрану адмінки. Див. Get_current_screen () $ pagenow (рядок)

Поточна сторінка адмін-панелі - назва оброблюваного сторінку php файлу. Наприклад options-general.php. Див. Get_current_screen ()

Мінлива також встановлюється і у фронті, тільки там вона завжди містить index.php.

$ Post_type (рядок) Тип запису в адмінці. На сторінці запису або таксономії. $ Menu (масив) Масив даних з елементами меню адмінки, які були додані через add_menu_page (). Містить Масив масивів даних кожного меню. $ Submenu (масив) Масив даних з елементами під-меню адмінки, які були додані через add_submenu_page (). Містить Масив масивів даних кожного під-меню. $ Admin_page_hooks (масив)

Елементи головного меню адмінки в масиві. Де індекс масиву це ID меню, який вказується в четвертому параметрі add_menu_page ().

Майже те ж саме що $ menu, тільки це індексний масив.

Ці змінні містять дані про поточний браузері, який використовує користувач.

$ Is_iphone (логічний) iPhone Safari $ is_chrome (логічний) Google Chrome $ is_safari (логічний) Safari $ is_NS4 (логічний) Netscape 4 $ is_opera (логічний) Opera $ is_macIE (логічний) Mac Internet Explorer $ is_winIE (логічний) Windows Internet Explorer $ is_gecko (логічний) FireFox $ is_lynx (логічний) Linux $ is_IE (логічний) Internet Explorer $ is_edge (логічний) Microsoft Edge до початку

Ці глобальні змінні містять дані на якому сервері працює WordPress.

$ Is_apache (логічний) Apache HTTP Server $ is_IIS (логічний) Microsoft Internet Information Services (IIS) $ is_iis7 (логічний) Microsoft Internet Information Services (IIS) v7.x

$ Blog_id (число) ID поточного блогу