2015-06-03 1 views
1

Теперь я использую wordpress 4.2 и разрабатываю темы для него на своем собственном сайте.Wordpress custom post_type архив url и запрос по умолчанию

Я определил множество пользовательских типов сообщений в своей теме, и теперь я нахожу способ сделать для них некоторые архивные страницы.


К примеру, у меня есть post_type под названием shop, и имеет таксономию имя region, возложенные на него.

я создал файл шаблон: category-region.php

Затем я посещаю постоянную ссылку этого шаблона: http://example.com/category/region/, этот шаблон был помечен, и инициализировать запрос со всеми назначенными магазинами, а затем отображать их.

Но теперь я хочу сделать страницу со всеми магазинами, независимо от того, в какой области они назначены.

Как я могу назвать файл шаблона и как насчет постоянной ссылки?


Я проверил иерархию шаблонов и нашел приведенную ниже диаграмму.

https://developer.wordpress.org/themes/basics/template-hierarchy/

enter image description here

Кажется archive-$post_type.php, что я хотел.

Но как насчет ссылки на ссылку, которая ссылается на этот шаблон?

+0

Является ли регион обычной таксономией или термином категории? 'category-region.php' должен быть файлом шаблона для категории' region'. –

+0

@ mtinsley да, таксономия. –

+0

См. Эту проблему: https://wordpress.org/support/topic/wp_query-with-custom-post_type-and-global-category –

ответ

2

Параметр rewrite в аргументах, переданных в register_post_type, определяет постоянную ссылку для вашего настраиваемого архива типа сообщения.

https://codex.wordpress.org/Function_Reference/register_post_type

Глядя на пример в документации:

$args = array(
    'labels'    => $labels, 
    'public'    => true, 
    'publicly_queryable' => true, 
    'show_ui'   => true, 
    'show_in_menu'  => true, 
    'query_var'   => true, 
    'rewrite'   => array('slug' => 'book'), 
    'capability_type' => 'post', 
    'has_archive'  => true, 
    'hierarchical'  => false, 
    'menu_position'  => null, 
    'supports'   => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments') 
); 

register_post_type('book', $args); 

Вы можете видеть, что переписывание пробкового для книги СРТ является book, поэтому URL в книжном архиве будет example.com/book/.

В вашем случае, если вы установите переписывания слизняка в shop (или, если вы не установили переписывания слизняка, в этом случае он будет по умолчанию к вашему СРТ слизняк), URL-адрес, который будет соответствовать вашему archive-shop.php шаблона будет be example.com/shop/.

Обратите внимание, что предполагается, что вы используете постоянные ссылки, если вы не используете постоянные ссылки, архив типа публикации магазина находится по адресу example.com/?post_type=shop. Если вы используете постоянную ссылку, убедитесь, что вы обновили их после настройки CPT, посетив страницу Settings > Permalinks.

+0

Не совсем. Этот параметр не соответствовал моей потребности. И, наконец, я нашел результат: '/? Post_type = shop'.Вы не указали на это решение, но покажете полезную информацию, спасибо! –

+0

Мое решение предполагало, что вы использовали постоянные ссылки. При использовании постоянных ссылок 'example.com/shop /' сопоставляется с 'example.com/? Post_type = shop' –

+0

О, я вижу! Спасибо. Я пробовал, но не смог. И теперь я обнаружил, что это потому, что я забыл обновить файл .htaccess. Ваше решение отлично подходит! –

Смежные вопросы