@morgana_lf

Как сделать несколько шаблонов single.php на Wordpress?

Добрый день.
В php разбираюсь не очень, прошу помощи.
Когда-то появилась задача сделать для одной рубрики отдельный шаблон single.php. В то время мне попалось в сети следующее решение:

<?php
$test = array(3);
if ( have_posts() ) { the_post(); rewind_posts(); }
if ( in_category($test)) { include(TEMPLATEPATH . '/single-test.php'); }
else {
    include(TEMPLATEPATH . '/single-defolt.php');
}
?>


Таким образом мне удалось сделать отдельный шаблон записи для рубрики с id 3 и в итоге на сайте сейчас два шаблона: sihgle-test.php и single-defolt.php.

Но вот теперь появилась необходимость сделать третью разновидность шаблона. То есть будет один шаблон для рубрики с id 3, еще один шаблон для рубрики с id 228, и третий шаблон для всех остальных рубрик. Как можно изменить существующий код? Или, может, существуют еще какие-то решения?

Всем спасибо, вопрос решен!

Решение:

<?php
$test = array(3);
if ( have_posts() ) { the_post(); rewind_posts(); }
if ( in_category($test)) { include(TEMPLATEPATH . '/single-test.php'); }
else {
    $test = array(1,4,5,6,7,10);
    if ( in_category($test)) { include(TEMPLATEPATH . '/single-defolt.php'); }
    else {
        include(TEMPLATEPATH . '/single-defolt-2.php');
    }
}
?>
  • Вопрос задан
  • 4522 просмотра
Пригласить эксперта
Ответы на вопрос 4
single.php так-то вообще не про страницы рубрик

вот подробная схема вам в помощь: wphierarchy.com
Ответ написан
Есть плагин позволяющий для Записей назначать различные шаблоны. Custom Post Templates
Ответ написан
Комментировать
@Souvel1
Web-программист. Разрабатываю на WordPress.
Смотри идею, если у тебя есть плагин Custom Post Types (плагин, лично у меня, must-have), или ручками сделай кастомное поле "Шаблон записи" чекбоксовое и используй его потом в цикле с конструкции if, только УЧТИ в ВП для этого есть специальная функция get_template_part();

И вообще есть возможность подключать следующим, правильным, образом:
category-3.php Для категории с ID 3
category-228.php Для категории с ID 228
category.php - для ВСЕХ, оставшихся, категорий
Ответ написан
@mir546
creator
а не проще в начале single-custom_1.php
написать:
<?php 
/*
Template Name: single-custom_1
Template Post Type: post
*/

а потом при создании записи в консоли выбрать какой шаблон использовать?

Хотя может в то время это было не возможно.
Если что вот оффициальная дока.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы