Вопрос или проблема
Я создаю сайт с цитатами, и у меня есть две основные категории: Темы и Авторы.
Каждая цитата будет иметь имя автора и название темы, которые являются подкатегориями Темы и Автора.
И мой вопрос таков:
я хочу отображать только категории Авторов, которые являются подкатегориями категории Авторы, пожалуйста, помогите мне…
Темы
– Любовь
– Жизнь
– Друзья и т.д.
Авторы
– Автор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 'Не найдены категории для данного поста.';
}
?>
Пояснения к коду
-
Определение ID родительской категории: В начале кода вы задаете ID категории «Авторы». Вы можете узнать ID, перейдя в админку WordPress и посмотрев URL, когда редактируете категорию.
-
Получение категорий поста: Функция
get_the_terms()
возвращает массив всех категорий, к которым принадлежит текущий пост. -
Проверка и фильтрация: Мы проходим по всем категориям и проверяем, является ли родительская категория текущей группой. Если это так, ссылка на эту подкатегорию добавляется в массив
$links
. -
Вывод результатов: В конце мы проверяем массив
$links
и, если он не пустой, выводим списком все подкатегории. Если подкатегорий нет, выводим сообщение об этом.
Этот код можно добавить в файл шаблона WordPress, где вы хотите выводить подкатегории авторов. Если у вас есть вопросы или требуется дополнительная помощь, не стесняйтесь задавать!