Список только дочерних категорий, в которых находится запись, для определенной родительской категории в WordPress.

Вопрос или проблема

Я создаю сайт с цитатами, и у меня есть две основные категории: Темы и Авторы.
Каждая цитата будет иметь имя автора и название темы, которые являются подкатегориями Темы и Автора.
И мой вопрос таков:
я хочу отображать только категории Авторов, которые являются подкатегориями категории Авторы, пожалуйста, помогите мне…

Темы
– Любовь
– Жизнь
– Друзья и т.д.
Авторы
– Автор1
– Автор2
– Автор3

Это даст вам ту же структуру, что показано выше:

wp_list_categories(array('hide_empty'=>0, 'hierarchical' => true, 'include' => array('12','12')));

    <?php
        // имена / ID родительских категорий
        $parents = array(
            'par2' => 76
        );
        // получить категории постов
        $categories = get_the_terms( $post->ID, 'category' );
        // вывести корневые категории и их подкатегории
        foreach( $parents as $parent_name => $parent_id ):
        // вывести имя родителя и ссылку
        //echo '<a href="' . get_term_link( $parent_id, 'category' ) . '">' . $parent_name . '</a>: ';
        // инициализировать массив для хранения ссылок дочерних категорий
        $links = array();
        foreach( $categories as $category ):
        if( $parent_id == $category->parent ):
        // добавить ссылку в массив
        $links[] = '<li><a href="' . get_term_link( $category ) . '">' . $category->name . '</a></li>';
        endif;
        endforeach;
        // соединить и вывести ссылки с разделителем
        echo join($links );
        endforeach;            
    ?>

Это ответ, который я искал, спасибо за ответы

Ответ или решение

Конечно! Ниже представлен полный ответ на ваш вопрос о том, как отобразить только категории авторов, которые являются подкатегориями категории «Авторы» в WordPress.

Решение

Чтобы вывести список подкатегорий «Авторов» для определенной категории в WordPress, вы можете использовать следующий код. Этот код проверяет все категории поста и выводит только те, которые являются подкатегориями заданной родительской категории.

<?php
// ID родительской категории "Авторы"
$parent_id = 76; // замените на ID вашей категори 'Авторы'

// Получаем категории, к которым принадлежит пост
$categories = get_the_terms($post->ID, 'category');

// Проверяем, определены ли категории
if ($categories && !is_wp_error($categories)) {
    // Инициализируем массив для хранения ссылок на подкатегории
    $links = array();

    // Проходим по всем категориям
    foreach ($categories as $category) {
        // Проверяем, является ли текущая категория подкатегорией родительской категории
        if ($parent_id == $category->parent) {
            // Добавляем ссылку на подкатегорию в массив
            $links[] = '<li><a href="' . get_term_link($category) . '">' . esc_html($category->name) . '</a></li>';
        }
    }

    // Проверяем, есть ли подкатегории, и выводим их
    if (!empty($links)) {
        echo '<ul>' . join('', $links) . '</ul>';
    } else {
        echo 'Нет подкатегорий для этой категории.';
    }
} else {
    echo 'Не найдены категории для данного поста.';
}
?>

Пояснения к коду

  1. Определение ID родительской категории: В начале кода вы задаете ID категории «Авторы». Вы можете узнать ID, перейдя в админку WordPress и посмотрев URL, когда редактируете категорию.

  2. Получение категорий поста: Функция get_the_terms() возвращает массив всех категорий, к которым принадлежит текущий пост.

  3. Проверка и фильтрация: Мы проходим по всем категориям и проверяем, является ли родительская категория текущей группой. Если это так, ссылка на эту подкатегорию добавляется в массив $links.

  4. Вывод результатов: В конце мы проверяем массив $links и, если он не пустой, выводим списком все подкатегории. Если подкатегорий нет, выводим сообщение об этом.

Этот код можно добавить в файл шаблона WordPress, где вы хотите выводить подкатегории авторов. Если у вас есть вопросы или требуется дополнительная помощь, не стесняйтесь задавать!

Оцените материал
Добавить комментарий

Капча загружается...