Передача переменных между category.php в single.php? - PullRequest
0 голосов
/ 19 августа 2010

Что я не могу понять, так это метод передачи идентификатора текущей категории в header.php при нажатии на сообщение.

Допустим, я нахожусь в категории 2 и нажимаю на сообщение, которое принадлежит нескольким категориям. Я хочу, чтобы файл single.php сохранял внешний вид, относящийся к категории 2. Для этого мне понадобится переменная, которая сообщит заголовку, из какой категории он пришел

1 Ответ

0 голосов
/ 19 августа 2010

Просто назовите ваш шаблон category-X.php, где X - это конкретное имя категории или идентификатор, для которого вы хотите создать собственный шаблон, и поместите его в / единственную папку в директории вашей главной темы. Теперь каждый раз, когда вызывается один пост, и он соответствует существующему шаблону в этой папке, он будет использовать его для отображения поста вместо обычного single.php. Если совпадений не найдено, используется single.php.

в functions.php:

define(SINGLE_PATH, TEMPLATEPATH . '/single');
add_filter('single_template', 'force_cat2single_template');  

function force_cat2single_template($single) {
global $wp_query, $post;
foreach((array)get_the_category() as $cat) :

        if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
            return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';

        elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
            return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
        endforeach;

        if(file_exists(SINGLE_PATH . '/single.php'))
            return SINGLE_PATH . '/single.php';
        elseif(file_exists(SINGLE_PATH . '/default.php'))
            return SINGLE_PATH . '/default.php';
    return $single;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...