Пользовательский тип записи Wordpress со страницей архива категорий

Я изо всех сил пытаюсь заставить свой собственный тип сообщения использовать мой собственный шаблон архива, надеюсь, кто-нибудь увидит, где я ошибаюсь, и поможет мне вернуться в нужное русло, пожалуйста?

Вот код, который я использовал для создания пользовательского типа записи:

add_action( 'init', 'news_post_type' );
function news_post_type() {
    register_post_type( 'news',
    array(
      'labels' => array(
        'name' => __( 'News' ),
        'singular_name' => __( 'News' )
      ),
      'capability_type' =>  'post',
      'has_archive' => true,
      'hierarchical' => true,
      'public' => true,
      'supports' => array('title','editor','excerpt','trackbacks','custom-fields','revisions','thumbnail','author','page-attributes',)
    )
  );
}
register_taxonomy( 'news_category', 'news',array('label' => __( 'Categories' ),'rewrite' => array( 'slug' => 'news/category' ),'hierarchical' => true, ) );

Это здорово, и URL-адрес возвращает: www.mysite.com/news/category/%the_category%, как я и хотел.

Проблема в том, что я хочу, чтобы каждая из категорий в этом CPT использовала мой собственный шаблон, но когда я создаю файл с именем archive-news.php, он игнорируется. Однако, если я создаю файл с именем archive.php, он работает, но, очевидно, это применяется ко всем другим почтовым архивам, которые мне не нужны.

Я неправильно называю файл шаблона? Есть ли ошибка в том, как я создал CPT?

Если кто-то может помочь, это будет очень признательно.

Большое спасибо


person Ordog    schedule 11.04.2017    source источник
comment
codex.wordpress.org/Category_Templates category-slug.php, category-ID.php, category.php, archive.php, index.php   -  person line88    schedule 11.04.2017
comment
Переименование файла в category-news.php тоже не помогло :(   -  person Ordog    schedule 11.04.2017
comment
попробуйте id категории или в вашем archive.php сделайте что-то вроде этого <?php if (is_category('Category A')) : get_template_part('mycustomtemplate') endif;?> developer.wordpress. org/reference/functions/get_template_part   -  person line88    schedule 11.04.2017
comment
Я не могу использовать идентификатор категории, потому что их слишком много, плюс он, вероятно, будет расширяться по мере роста сайта, поэтому мне нужно будет постоянно редактировать файл, чтобы добавить их.   -  person Ordog    schedule 11.04.2017
comment
Использование слага или идентификатора — это одно и то же, потому что слаг должен быть уникальным.   -  person line88    schedule 11.04.2017
comment
Я не понимаю, что ты говоришь, извини. Можете ли вы немного уточнить, пожалуйста?   -  person Ordog    schedule 11.04.2017
comment
Использование category-slug.php аналогично использованию category-id.php, потому что слаг категории должен быть уникальным для сайта. Попробуйте использовать is_category() для вывода пользовательского шаблона для пользовательской категории, также попробуйте post-news.php для отдельного сообщения, просто чтобы проверить, правильно ли работает категория... я думаю, вы пропустили rewrite => array('slug' => 'news') часть в вашем cpt $args, попробуйте добавить в ваш массив аргументов register_post_type   -  person line88    schedule 11.04.2017
comment
Хорошо, я попробовал несколько вещей сейчас. single-news.php работает, добавление предложенной вами перезаписи не сработало. Если я использую archive.php, это работает, а все остальное - нет. НАПРИМЕР. category-news.php , news-archive.php и т. д. Я прочитал кучу документации, и теперь у меня все работает с использованием шаблонов таксономии, поэтому taxonomy-news_category.php работает для меня. Спасибо за помощь!   -  person Ordog    schedule 12.04.2017
comment
мило, а вы пробовали archive-news_category.php)   -  person line88    schedule 12.04.2017
comment
Да, к сожалению, это тоже не сработало... так странно! :/   -  person Ordog    schedule 12.04.2017


Ответы (2)


я проверил ваш код, так как он работает правильно на моей стороне. я думаю, вы проверяете на странице сведений, какой файл single-$posttype.php.

person Vipin    schedule 11.04.2017
comment
Я не смотрю на одну страницу, определенно на категорию :) - person Ordog; 11.04.2017

Использование шаблона таксономии сработало в этом случае, поэтому имя моего файла taxonomy-news_category.php позволило мне создать собственный шаблон для всех категорий в моем пользовательском типе сообщений.

Я также обнаружил, что наличие страницы с таким же именем, как у пользовательского типа записи, также вызывает проблемы. Таким образом, переименуйте страницу или используйте шаблон таксономии, как указано выше.

person Ordog    schedule 12.04.2017