куда включить php-файл
У меня есть php-файл с некоторыми переменными, которые я хотел бы использовать.
Когда я включаю его в header.php переменные в этом файле не распознаются на footer.php и в некоторых других местах.
Где лучше всего разместить этот файл, чтобы его содержимое было доступно всем файлам wp.
3 answers
Переменные имеют определенную область действия. Руководство по PHP подробно объясняет это . Поэтому, когда вы устанавливаете переменную, вы должны знать, в какой области они установлены. Это зависит от того, где вы их устанавливаете и как этот файл включается.
Как уже предлагал Рарст, function.php файл - идеальное место, так как он включается в глобальное пространство всякий раз, когда ваша тема активна.
Кроме того, область действия все еще применяется. Файл footer.php
, например, обычно не включается в глобальный масштаб. Чтобы получить доступ к своим переменным в нем - если вы установили их глобально - вы можете обратиться к $GLOBALS
суперглобальный массив.
Обычно это происходит для некоторых переменных. Если у вас их несколько, вы можете вместо этого присоединить все свои переменные к массиву, чтобы у вас было только одно имя переменной в глобальной области, на которую вам нужно ссылаться. Это держит вещи немного дальше друг от друга, что облегчает задачу в долгосрочной перспективе. Потому что, если вы назовете свои переменные так же, как существующие переменные, вы их перепишете. Это может привести к поломке вещей, которые трудно отладить.
Пример:
В function.php
$mytheme_config = array();
$mytheme_config['extra_footer_display'] = true;
В footer.php
if ($GLOBALS['mytheme_config']['extra_footer_display']) {
// executed when extra_footer_display is true
}
Это всего лишь очень простой пример, но он, вероятно, уже выполняет эту работу за вас. Я не знаю вашего уровня опыта работы с PHP, но, поскольку вы, вероятно, начинаете, ссылки, приведенные выше, дают вам общее представление о том, как это работает. Просто имейте в виду, что части шаблона не загружаются в глобальная область, поэтому вам нужно ссылаться на глобальные переменные с помощью суперглобального массива $GLOBALS
, чтобы получить к ним доступ. $GLOBALS
всегда ссылается на глобальные переменные, независимо от области, в которой к ним осуществляется доступ.
Лучшим местом для включения кода в тему обычно является файл функций (functions.php
) вместо файлов шаблонов (которые могут и часто переопределяются плагинами, дочерними темами и т. Д.).
В зависимости от ваших особенностей вы можете определить константы там или создать функцию-оболочку и подключить ее к какому-либо действию, запускаемому на более поздних этапах загрузки темы.
Также в зависимости от специфики вы можете изучить API опций для хранения значений в базе данных.
Вам нужно сделать переменные постоянными и включить их в header.php Использование index.php будет включать их только на вашей домашней странице/главной странице блога, в зависимости от ваших настроек, и пропустит любую категорию, тег, поиск и страницу.