Создание пользовательского шаблона отдельного сообщения для пользовательского типа сообщения на основе категории

Попытка создать несколько отдельных пользовательских шаблонов для пользовательского типа сообщений на основе пользовательской таксономии пользовательского типа порта.

Например: когда у поста есть определенная категория, он будет использовать другой шаблон, а не стандартный single-custom-post-type-name.php.

Это то, что я пробовал до сих пор. Но, похоже, это не работает. И я предполагаю, что это потому, что я пытаюсь это сделать на CPT.

add_filter('single_template', create_function(
'$the_template',
'foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
    return TEMPLATEPATH . "/single-{$cat->slug}.php"; }
return $the_template;' )

);


person avexdesigns    schedule 07.12.2013    source источник


Ответы (1)


Цикл примера в файле myposttype-single.php (слаг вашего типа сообщения):

while (have_posts()) : the_post();

    $category = get_the_category();
    $firstCategory = $category[0]->cat_name;

    if ( $firstCategory === 'yourcategoryname' ){
        get_template_part( 'partials/myposttype', 'specialcat' );
    } else {
        get_template_part( 'partials/myposttype', 'default' );
    }

endwhile;
  • затем создайте папку под названием «partials» в папке вашей темы.
  • в этой папке вы создаете два файла с именами «myposttype-specialcat.php» и «myposttype-default.php». Добавьте в этот файл тот же код, что и в обычном шаблоне: заголовок, цикл, нижний колонтитул и т. д.

если первым именем категории этого поста будет «yourcategoryname», он примет специальный шаблон, а не шаблон по умолчанию.

person Bart    schedule 07.12.2013