Що таке глобальні змінні в 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 поточного блогу