Intereting Posts

Таможенная настройка типа страницы, когда правило «переписать» CPT и страница имеют одинаковый слизень

Я хотел бы получить следующую структуру ссылок на моем сайте:

  1. / properties / -> страница properties со properties CPT, стр. 1.
  2. / properties / page / 2 -> страница properties со properties CPT, стр. 2.
  3. / properties / property-name -> отдельная страница properties со сведениями о свойствах.

У меня есть property Custom Post Type (CPT). Он зарегистрирован следующим образом с правилом rewrite указанным как 'rewrite' => array('slug' => 'properties', 'with_front' => false) :

 function property_post_type_init() { $labels = array( 'name' => _x('Properties', 'post type general name'), 'singular_name' => _x('Property', 'post type singular name'), 'add_new' => _x('Add New', 'property') ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'rewrite' => array('slug' => 'properties', 'with_front' => false), 'query_var' => true, 'capability_type' => 'post', 'hierarchical' => false, 'show_in_nav_menus' => false, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'revisions' ) ); register_post_type('property',$args); 

У меня также есть страница с properties slug, а структура permalink устанавливается как /%category%/%postname%/

На странице « Properties я WP_Query новый объект WP_Query со следующими аргументами:

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'property', 'orderby' => 'date', 'order' => 'DESC', 'paged' => $paged ); return $args; 

Я использую пользовательский код разбивки на страницы (в functions.php), который правильно формирует разбиение на страницы с правильными URL-адресами:

 <my-site>/properties/ <my-site>/properties/page/2/ <my-site>/properties/page/3/ 

Однако, когда я нажимаю на любую страницу в разбивке на страницы, я перенаправляюсь на страницу 404. Я ожидал параметры запроса, и они следующие:

 [page] => 2 [property] => page [post_type] => property [name] => page 

Это неверно! Я не понимаю, откуда эти параметры:

 [page] => 2 [property] => page [name] => page 

Я уверен, что это связано с правилом rewrite при регистрации CPT.

Как я могу выполнить следующую настройку для правильной работы:

  1. Страница properties , отображающая все настраиваемые сообщения типа сообщений с разбивкой по страницам.
  2. properties персонализированного properties с параметром 'rewrite' => array('slug' => 'properties', 'with_front' => false) .
  3. Постоянная ссылка /%category%/%postname%/ structure

Так что у меня есть следующая структура ссылок:

  1. / properties / -> страница properties со properties CPT, стр. 1.
  2. / properties / page / 2 -> страница properties со properties CPT, стр. 2.
  3. / properties / property-name -> отдельная страница properties со сведениями о свойствах.

Надеюсь, это имеет смысл.

Спасибо, Даша

Solutions Collecting From Web of "Таможенная настройка типа страницы, когда правило «переписать» CPT и страница имеют одинаковый слизень"

Попробуйте изменить пул страницы на что-то другое и измените регистрацию своего типа:

  $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'has_archive' => true, 'show_ui' => true, 'rewrite' => array('slug' => 'properties', 'with_front' => false), 'query_var' => true, 'capability_type' => 'post', 'hierarchical' => false, 'show_in_nav_menus' => false, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'revisions' ) ); 

Оперативный новый аргумент – 'has_archive' . Это новое в 3.1 и по умолчанию имеет структуру /properties/ , /properties/page/2 и т. Д. Затем очистите свои правила перезаписи и посмотрите, исправляет ли это это. Вам также может потребоваться прокомментировать любой написанный вами код с запросом или переписать правила