PHP / WordPress включают файл - PullRequest
1 голос
/ 19 января 2012

Этот вопрос касается wordpress.

У меня есть две переменные $random_n и $adcount, объявленные в каждом из файлов index.php, archieve.php, search.php и single.php в самой первой строке.

Переменные объявляются следующим образом:

<?php $random_n = randomNumber();?> 
<?php $adcount = 1; ?>

randomNumber() - это функция внутри function.php.

Если переместить эти переменные в header.php и удалить их из всех этих файлов, он перестает работать. : / Переменные не могут быть найдены в index.php, archieve.php, search.php, single.php, если они помещены в header.php

Я также пытался поместить этот код в новый файл и включить его в index.php, archieve.php, search.php и single.php, но это также не помогло.

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Если переменная каким-то образом связана с конфигурацией вашего блога, вы должны использовать API опции wordpress для ее создания (см. здесь , поиск опции).

Если ваша переменная случайная(имя вашей функции намекает на то, что) способ обойти это будет использовать переменные сеанса для хранения этих значений.

Хорошее руководство по использованию переменных сеанса в WordPress можно найти здесь: http://www.myguysolutions.com/2010/04/14/how-to-enable-the-use-of-sessions-on-your-wordpress-blog/

1 голос
/ 19 января 2012

Введите var_dump($random_n) в начале index.php и опубликуйте вывод, пожалуйста.

Одной из возможных причин является то, что ваши index, search и т. Д. Включены в функцию, которая не разделяет область действия с header.php, поэтому ваши переменные находятся вне области действия. Это может помочь, если вы объявите их global как в header.php, так и в ваших рабочих файлах. Но это не очень хорошая идея.

Лучшим решением было бы ввести некоторый объект Registry ( Шаблон реестра ) и использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...