куда включить php-файл


У меня есть php-файл с некоторыми переменными, которые я хотел бы использовать.

Когда я включаю его в header.php переменные в этом файле не распознаются на footer.php и в некоторых других местах.

Где лучше всего разместить этот файл, чтобы его содержимое было доступно всем файлам wp.

Author: hakre, 2010-11-26

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 всегда ссылается на глобальные переменные, независимо от области, в которой к ним осуществляется доступ.

 5
Author: hakre, 2010-11-29 10:12:09

Лучшим местом для включения кода в тему обычно является файл функций (functions.php) вместо файлов шаблонов (которые могут и часто переопределяются плагинами, дочерними темами и т. Д.).

В зависимости от ваших особенностей вы можете определить константы там или создать функцию-оболочку и подключить ее к какому-либо действию, запускаемому на более поздних этапах загрузки темы.

Также в зависимости от специфики вы можете изучить API опций для хранения значений в базе данных.

 8
Author: Rarst, 2010-11-26 06:28:36

Вам нужно сделать переменные постоянными и включить их в header.php Использование index.php будет включать их только на вашей домашней странице/главной странице блога, в зависимости от ваших настроек, и пропустит любую категорию, тег, поиск и страницу.

 0
Author: curtismchale, 2010-11-26 04:04:03