@WebaA_Ru

Не отображаются страницы таксономий в произвольном типе записей, что делать?

Здравствуйте. Есть произвольный тип записей
add_action('init', 'exercises');
function exercises()
{
  $labels = array(
    'name' => 'Упражнения',
    'singular_name' => 'Упражнение',
    'add_new' => 'Добавить',
    'add_new_item' => 'Добавить новое упражнение',
    'edit_item' => 'Редактировать упражнение',
    'new_item' => 'Новое упражнение',
    'view_item' => 'Посмотреть упражнение',
    'search_items' => 'Найти упражнение',
    'not_found' =>  'Упражнений не найдено',
    'not_found_in_trash' => 'В корзине упражнений не найдено',
    'parent_item_colon' => '',
    'menu_name' => 'Упражнения'
  );

  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'has_archive' => true,
    'hierarchical' => false,
    'menu_position' => 5,
    'supports' => array('title','editor','thumbnail', 'comments'),
    'taxonomies' => array('exercises') 
  );
  register_post_type('exercises',$args);  
}

// Создаем новую таксономию для упражнений
add_action( 'init', 'create_exercise_taxonomies', 0 );

function create_exercise_taxonomies(){
  $labels = array(
    'name' => _x( 'Категории', 'taxonomy general name' ),
    'singular_name' => _x( 'Категория', 'taxonomy singular name' ),
    'search_items' =>  __( 'Найти категории' ),
    'all_items' => __( 'Все категории' ),
    'parent_item' => __( 'Родительская категория' ),
    'parent_item_colon' => __( 'Родительская категория' ),
    'edit_item' => __( 'Родительская категория' ),
    'update_item' => __( 'Обновить категорию' ),
    'add_new_item' => __( 'Добавить новую категорию' ),
    'new_item_name' => __( 'Название новой категории' ),
    'menu_name' => __( 'Категории' ),
  );

  register_taxonomy('exercises', array('exercises'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'exercises' ),
  ));


}


Есть шаблон
archive-exercises - главная test.com/exercises
single-exercises - страница записи test.com/exercises/zapisozapisi

Но при попытки открыть страницу таксономии test.com/exercises/street пишет - страница не найдена.
Постоянные ссылки обновил, всё равно ничего не получается
  • Вопрос задан
  • 757 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
У вас одинаковый slug и у post type, и у taxonomy. Соответственно, будет срабатывать первое правило из двух, а именно правило custom post type. В вашем случае, при попытке открыть урл test.com/exercises/street WP будет искать запись типа exercises (custom post type) со слагом street. Такой записи нет, отсюда 404. Термин таксономии он искать не будет, так как Rewrite API работает по принципу "нашли первое совпадение и прекратили проверку".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы