Wordpress и PHP - PullRequest
       19

Wordpress и PHP

0 голосов
/ 15 декабря 2010

У меня есть этот код в header.php для Wordpress, чтобы отображать мини-фид в верхней части страницы или нет.

<?php if ( !$noHeader ) { include('feed.php'); } ?>

В верхней части каждой страницы я устанавливаю переменную $ noHeader

$noHeader = true;
get_header(); 

По какой-то причине это не работает.Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

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

<?php // In your theme file
global $noheader;
$noheader = true;
get_header();

<?php 
global $noheader; 
if(!$noheader) { 
    include(TEMPLATEPATH.'/feed.php'); 
}

Это может показаться грязным, и это так, но нет никаких причин не делать этого, потому что WordPress повсеместно использует глобальные переменные. Как я сказал в комментарии к Стивену, это лучше, чем прямое включение файла header.php на тот случай, если вы когда-нибудь захотите использовать родительские / дочерние темы.

2 голосов
/ 15 декабря 2010

У меня была эта проблема.Функция wordpress get_header(); не оценивает локальные переменные из родительского файла в вашем включенном заголовочном файле.Измените его на

// get_header(); //commented out for clarity of explanation
include 'header.php';

Честно говоря, нет никакой реальной причины, по которой я нашел использование get_header(); вместо include, в любом случае.

Вы также можете сделать это тоже:

// get_sidebar();
include 'sidebar.php';

// get_footer();
include 'footer.php';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...