Нет перехода на страницу рубрики

Вот так объявляется меню

 <?
    wp_nav_menu( [
        'theme_location'  => '',
        'menu'            => 'Главное Меню', 
        'container'       => false, 
        'container_class' => '',
        'container_id'    => '',
        'menu_class'      => 'main_nav', 
        'menu_id'         => '',
        'echo'            => true,
        'fallback_cb'     => 'wp_page_menu',
        'before'          => '',
        'after'           => '',
        'link_before'     => '',
        'link_after'      => '',
        'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
        'depth'           => 0,
        'walker'          => '',
    ] );
    ?>

В меню пунктами являются рубрики. Вот так выглядит в инспекторе

<ul id="menu-glavnoe-menyu-1" class="main_nav">
  <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-19"><a href="http://design/category/kvartiry/">квартиры</a></li>
  <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-18"><a href="http://design/category/doma/" aria-current="page">дома</a></li>
  <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20"><a href="http://design/category/ofisy/">офисы</a></li>
</ul>

Создал страницу category-objects.php все равно нет перехода.

<?php
/*
Template Name: Каталог
*/
?>    
<?php get_header();?>    
<h1>Каталог Недвижимости</h1>    
<?php get_footer();?>

Объявление кастомного типа записи

add_action('init', 'create_objects_type');
function create_objects_type() {
    register_post_type('objects',
        array(
            'labels' => array(
                'name'               => __('Недвижимость'),
                'singular_name'      =>  __('Недвижимость'),
                'add_new'            => __('Добавить Недвижимость'),
                'add_new_item'       => __('Добавление Недвижимости'),
                'edit'              =>  __('Редактировать Недвижимость'),
                'edit_item'          => __('Редактирование Недвижимости'),
                'new_item'           => __('Новая Недвижимость'),
                'view'                   => __('Просмотреть Недвижимость'),
                'view_item'          => __('Просмотреть Недвижимость'),
                'search_items'       => __('Поиск по Недвижимости'),
                'not_found'          => __('Пока нет Недвижимости'),
                'not_found_in_trash' => __('В корзине нет Недвижимости'),
                'menu_name'          => __('Недвижимость'),
            ),
            'description'         => 'Недвижимость itip',
            'public'              => true,
            'publicly_queryable'  => true,
            'exclude_from_search' => false,
            'show_ui'             => true,
            'show_in_menu'        => true,
            'show_in_nav_menus'   => true,
            'menu_position'       => 20,
            'menu_icon'           => 'dashicons-store', 
            'capability_type'       => 'post',
            'map_meta_cap'          => true,
            'hierarchical'        => false,
            'supports' => array(
                    'title',
                    'author',
                    'trackbacks',
                    'thumbnail',
                    'page-attributes',
                    'post-formats',
                    'custom-fields'
                ),
            'taxonomies'          => array('category', 'post_tag'),
            'has_archive'         => true,
            'rewrite'             => true,
            'query_var'           => true,
            'can_export'          => true
        )
    );
}

Как сделать переход на страницу рубрики, и при необходимости получить ID рубрики для того чтобы вывести посты?


Ответы (1 шт):

Автор решения: Valerii Vasiliev

У вас неправильно назван шаблон страницы

Страница шаблона для custom-post-type должна называться по формуле archive-{post_type}.php, т.е. в вашем случае archive-objects.php

https://developer.wordpress.org/themes/basics/template-hierarchy/#custom-post-types

Глобальный цикл уже учитывает в запросе айди рубрики

Также получить айди рубрики можно так

$category = get_queried_object();
echo $category->term_id;
→ Ссылка