Intereting Posts
PHP отправляет почту на несколько адресов электронной почты PDO :: exec () или PDO :: query ()? Selenium / PHPUnit: завершение сеанса при повторном использовании сеансов браузера? Как я могу запретить пользователям доступ к частям моего приложения Backbone, если они не вошли в систему? Неустранимая ошибка при расширении включенного класса Установка Magento жалуется на отсутствие InnoDB, когда он доступен Не удалось отправить электронную почту в php Почему я не могу использовать индекс массива для возвращаемого значения функции? 403 Запрещено на странице PHP с URL, закодированным в параметре $ _GET Измените uri модуля без переименования класса в PyroCMS Как передать полный список / иерархию ролей безопасности в класс FormType в Symfony2? Почему файлы приложения CodeIgniter в папке public_html? firebase PHP: создать пользователя Каков наиболее безопасный способ для загрузки файла? Добавление входного фильтра в набор полей в ZF2

Область применения: использование переменной, определенной в функции

У меня есть функция в файле functions.php, который определяет определенные переменные:

add_action( 'the_post', 'paginate_slide' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == 'post' ) { $multipage = 1; $id = get_the_ID(); $custom = array(); $pages = array(); $i = 1; foreach( get_post_custom_keys() as $key ) if ( false !== strpos( $key, 'slide' ) ) $custom[$key] = get_post_meta( $id, $key, true); while( isset( $custom["slide{$i}-title"] ) ) { $page = ''; $tzTitle = $custom["slide{$i}-title"]; $tzImage = $custom["slide{$i}-image"]; $tzDesc = $custom["slide{$i}-desc"]; $tzEmbed = $custom["slide{$i}-embed"]; $page = "<h2>{$tzTitle}</h2><img src='{$tzImage}' />"; $pages[] = $page; $i++; } $numpages = count( $pages ); } } 

Я хотел бы вывести некоторые из этих переменных в файле template.php следующим образом: <?php echo $tzDesc; ?> <?php echo $tzDesc; ?> но я не могу заставить его работать. Из того, что я понимаю о области переменных , чтобы вызвать эти переменные в другом месте, мне нужно определить их в глобальной области действия и назвать их глобальными в этой функции, как я сделал $pages, $multipage, $numpages; , Это должно позволить мне подключать эти переменные туда, где они мне нужны. Проблема в том, что, когда я вынимаю их из функции и определяю их выше в глобальной области, вся функция перестает работать.

Как мне нужно структурировать это, чтобы я мог вызвать <?php echo $tzDesc; ?> <?php echo $tzDesc; ?> где-нибудь на сайте и есть ли эхо определенная информация?

Я не знаю, имеет ли это значение, но это на сайте WordPress.

Solutions Collecting From Web of "Область применения: использование переменной, определенной в функции"

Если вы хотите использовать <?php echo $tzDesc; ?> <?php echo $tzDesc; ?> любом случае вам нужно будет определить $tzDesc как глобальную переменную. Однако я не рекомендую это делать, поскольку глобальные переменные считаются плохой практикой программирования.

Лучшим решением будет иметь paginate_slide() добавить $tzDesc (и другие значения) к объекту $post . Таким образом, вы получаете доступ к этим переменным при вызове the_post() . Если вы идете по этому маршруту, обязательно укажите пробелы в переменных:

 $post->ns_tzDesc = $tzDesc;