Как создать в WordPress страницу, где будут отображаться подкатегории внутри категории, а не посты?

Как реализовать вложенную структуру для хлебных крошек, аналогичную той, что представлена на сайте https://antiquarika.ru/? На данный момент я настроил Yoast SEO для создания хлебных крошек по типам записей и выбрал "Рубрики". Однако у меня возникают проблемы с отображением вложенности. Вместо отображения отдельной самодостаточной страницы "Записи", я получаю список рубрик, а не желаемую структуру, похожую на "Главная - Скупка золота - Продать золото", как это представлено на сайте-примере. Вместо этого у меня получается "Главная" - category (cо списком всех рубрик вместо страницы) - подкатегория (сама запись). Я хочу добиться структуры "Главная" - "Первая запись" - "Вторая запись", чтобы вложенность была отражена как в домене, так и в хлебных крошках с ЧПУ. Как это можно достичь?
  • 16 января 2024 г. 19:19
Ответы на вопрос 2
Создание страницы для отображения подкатегорий в WordPress и настройка вложенности для хлебных крошек могут потребовать несколько разных шагов:

### Для страницы с подкатегориями:
1. Создайте шаблон страницы в вашей теме (или дочерней теме), например `category-subcategories.php`. Код может выглядеть примерно так:
   ```php
   <?php
   // Получаем текущую рубрику
   $term = get_queried_object();
   $args = array(
       'parent'     => $term->term_id,
       'taxonomy'   => 'category',
       'hide_empty' => false,
   );

   $sub_cats = get_terms($args);
   ?>
   <?php get_header(); ?>

   <div id="primary" class="content-area">
       <main id="main" class="site-main" role="main">

           <?php if ( ! empty( $sub_cats ) ) : ?>
               <ul>
               <?php foreach ( $sub_cats as $sub_cat ) : ?>
                   <li>
                       <a href="<?php echo esc_url( get_term_link( $sub_cat ) ); ?>">
                           <?php echo esc_html( $sub_cat->name ); ?>
                       </a>
                   </li>
               <?php endforeach; ?>
               </ul>
           <?php endif; ?>

       </main><!-- #main -->
   </div><!-- #primary -->

   <?php get_sidebar(); ?>
   <?php get_footer(); ?>
   ```
   Этот код получает подкатегории текущей категории и выводит список с ссылками.

2. Зарегистрируйте новый шаблон в вашем `functions.php` или плагине:
   ```php
   function my_theme_add_category_template( $templates ) {
       $templates['category-subcategories.php'] = 'Subcategories Template';
       return $templates;
   }
   add_filter( 'theme_page_templates', 'my_theme_add_category_template' );
   ```

3. Создайте страницу в административной панели WordPress и выберите созданный шаблон "Subcategories Template" для этой страницы.

### Для хлебных крошек с вложенностью:

Если вы используете плагин Yoast SEO для хлебных крошек, проверьте настройки плагина, особенно часть, относящуюся к таксономиям. Убедитесь, что включена опция для отображения иерархии категорий.

Если плагин не дает желаемых результатов, вы можете создать свои хлебные крошки со следующими шагами:

1. Обработайте иерархию категорий, получая родительские категории текущего поста или категории:
   ```php
   function my_custom_breadcrumbs() {
       // Логика для построения хлебных крошек
   }
   ```

2. Вставьте вывод функции `my_custom_breadcrumbs()` в соответствующие шаблоны темы (например, `single.php`, `category.php`, `page.php` и т.д.).

3. Убедитесь, что ваша логика правильно формирует последовательность ссылок, отражающих структуру сайта в соответствии с ЧПУ (Человеко-Понятным Урлом).

Чтобы точно соответствовать вашим требованиям, можно потребоваться дополнительная настройка темы, создание пользовательских типов записей (Custom Post Types) и/или глубокие изменения в ЧПУ и таксономиях с помощью таких плагинов, как Custom Post Type UI и Advanced Custom Fields.

Вам также может потребоваться дополнительная настройка конкретных страниц, чтобы они служили лендингами для рубрик. После создания этих страниц не забудьте
Требуется, чтобы было без "категорий" (сайт.ру/zoloto/) и с полностью сформированной мной страницой вместо рубрик


В плагине Rank Math (аналог Yoast Seo) есть возможность убрать category.

По рубрикам. Если вы через "Записи" реализуете, то будут выводиться рубрики. Вы можете сделать свой шаблон для рубрик и выводить как вам нравится.
Похожие вопросы