Intereting Posts
Пользовательские значения полей, удаленные при сортировке настраиваемого типа сообщения Могу ли я оставить плагин textdomain для терминов, используемых в ядре? Альтернативная альтернатива WordPress Добавить мета-бокс, не отображающийся в новой записи – пользовательский мета-ящик не отображается Установите размер шрифта автоматически в соответствии с количеством слов в сообщении Как медиабиблиотека определяет, есть ли в файле PDF изображения предварительного просмотра? Есть ли объект информации в блоге? Принуждение максимальной ширины для подписи к изображениям API переходных процессов Переопределить виджет в функции WordPress Показать заголовок сообщения на странице прикрепления отдельного изображения Как пользовательский тип сообщения и страница имеют одинаковый слизень? Создайте сайт простого магазина с перечнем продуктов Проблема с контекстной помощью, переписывающей существующий контент Будет ли WordPress полностью ООП?

Пользовательский шаблон шаблона типа публикации

У меня есть аналогичная проблема с этим: Custom Post Type Template – Архив

У меня есть пользовательский тип WordPress, называемый coupon . Я пытаюсь присвоить ему шаблон, используя archive-coupon.php , но он идет непосредственно на home.php .

У меня также есть пользовательская таксономия этого CPT, называемого tags с rewrite rule => "tag" поэтому, когда я перехожу к URL-адресу, подобному этому – http://mysite.com/tag/3d я хочу видеть пользовательский шаблон для моего Пользовательский тип сообщения или общий для таксономий.

Я также пробовал шаблон taxonomy.php но он все еще игнорирует его. В чем может быть проблема?

Обновить –

Я не знаю, что на самом деле произошло. Но до этого у меня был шаблон под названием taxonomy-store.php. Поэтому, когда я переименовал его в другое имя, таксономический tag начал использовать файл шаблонов taxonomy.php . И все же archive-coupon.php не работает.

Solutions Collecting From Web of "Пользовательский шаблон шаблона типа публикации"

Я считаю, что tag – это зарезервированное имя таксономии, переписываемое в wordpress, которое будет использоваться по таксономии по умолчанию post_tag . Это может вызвать проблему. Переименуйте обычную таксономию в нечто вроде coupon-tag .

BTW: вы пытались сбросить перезаписи, посетив страницу постоянной ссылки со вкладки настроек?

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

Файл вашего CPT-архива должен быть назван archive-cpt.php, где cpt – это имя вашего настраиваемого типа сообщений.

Вот весь код, который был протестирован.

Примечание. Вы не должны использовать тег или теги в качестве имени своего типа таксономии, поскольку оно будет противоречить существующим основным функциям.

 add_action( 'init', 'wpsites_cpt_post_type' ); function wpsites_cpt_post_type() { register_post_type( 'cpt', array( 'labels' => array( 'name' => __( 'CPT', 'theme' ), 'singular_name' => __( 'CPT', 'theme' ), ), 'has_archive' => true, 'hierarchical' => true, 'menu_icon' => true, 'public' => true, 'rewrite' => array( 'slug' => 'cpt', 'with_front' => false ), 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes' ), 'taxonomies' => array( 'cpt-type' ), )); } 

И это для регистрации страницы типа таксономии, где вы можете создавать неограниченные типы налогов.

 add_action( 'init', 'wpsites_register_taxonomy_types' ); function wpsites_register_taxonomy_types() { register_taxonomy( 'cpt-type', 'cpt', array( 'labels' => array( 'name' => _x( 'Types', 'taxonomy general name', 'theme' ), 'add_new_item' => __( 'Add New CPT Type', 'theme' ), 'new_item_name' => __( 'New CPT Type', 'theme' ), ), 'exclude_from_search' => true, 'has_archive' => true, 'hierarchical' => true, 'rewrite' => array( 'slug' => 'cpt-type', 'with_front' => false ), 'show_ui' => true, 'show_tagcloud' => false, )); } 

Замените все экземпляры cpt именем своего настраиваемого типа сообщений, а затем сохраните настройки постоянной ссылки.

В противном случае это может быть проблемой с кодом в вашем файле taxonomy-cpt-type.php.

Прежде всего, давайте посмотрим, что вы понимаете иерархию шаблонов . Для типа сообщения с именем « купон» с 'has_archive' => true и таксономия с именем coupon-tag (следуя совету @ Sisir), оба настроены на публичные,

  • / купон / будет использовать archive-coupon.php, archive.php или index.php, в зависимости от того, что найдено в этом порядке
  • / coupon-tag / foo / будет использовать таксономию-coupon-tag-foo.php, taxonomy-coupon-tag.php, taxonomy.php, archive.php или index.php, в зависимости от того, что найдено первым в этом порядке. Обратите внимание, что archive-coupon.php отсутствует в этом списке (это распространенная ошибка).
  • home.php будет использоваться только для главной страницы

Далее, tag является специальным словом, и вы столкнетесь с переписыванием конфликтов, используя это как ваш slug. Вы должны использовать что-то еще.

Наконец, здесь очень важна промывка ваших переписываний, и вам нужно помнить об этом после любых изменений в любом из соответствующих кодов (любые изменения в CPT или таксономии). Самый простой способ сделать это – перейти в « Настройки» → «Постоянная ссылка» и нажать «Сохранить изменения».