В WordPress часто возникает задача вывести список главных категорий блога или магазина без использования плагинов. Это может понадобиться для создания кастомного меню, боковой панели или отдельного блока с категориями. В этой статье разберём, как программно получить и вывести только основные категории — то есть те, у которых нет родительской категории (parent = 0). Рассмотрим примеры кода, объясним параметры и дадим советы по кастомизации.
Что такое главные категории в WordPress и зачем их выводить
В WordPress таксономия категорий иерархична: категории могут быть вложенными друг в друга. Главные категории — это те, у которых нет родителя. Они задают структуру верхнего уровня и часто используются в навигации по сайту.
Вывод главных категорий позволяет:
- Показать пользователям основные темы сайта;
- Упростить навигацию, избегая длинных списков вложенных подкатегорий;
- Создавать кастомные меню и виджеты с уникальным дизайном;
- Оптимизировать загрузку страниц, выводя только нужный уровень.
Выводить главные категории можно как с помощью готовых виджетов и плагинов, так и программно, что даёт полный контроль над отображением.
Функция wptips_get_top_categories: как получить главные категории
Напишем функцию wptips_get_top_categories(), которая вернёт массив объектов категорий с parent=0. Используем стандартную функцию WordPress get_categories() с параметрами для выбора только верхнего уровня.
function wptips_get_top_categories() {
$args = array(
'taxonomy' => 'category',
'parent' => 0, // только верхний уровень
'hide_empty' => false, // показывать даже пустые категории
'orderby' => 'name',
'order' => 'ASC',
);
return get_categories($args);
}Параметры:
taxonomy— указывает таксономию, обычно 'category';parent— 0 означает верхний уровень категорий;hide_empty— false позволяет вывести даже категории без записей;orderbyиorderзадают сортировку.
Теперь вызов wptips_get_top_categories() вернёт массив объектов категорий.
Вывод главных категорий с описанием и ссылками
После получения категорий выведем их в виде списка с ссылкой на архив и кратким описанием. Такой список удобно встроить в шаблон сайта или виджет.
$top_categories = wptips_get_top_categories();
echo '<ul class="wptips-top-categories">';
foreach ($top_categories as $cat) {
$link = get_category_link($cat->term_id);
echo '<li><a href="' . esc_url($link) . '" title="' . esc_attr($cat->name) . '">' . esc_html($cat->name) . '</a>';
if (!empty($cat->description)) {
echo '<div class="category-description">' . esc_html($cat->description) . '</div>';
}
echo '</li>';
}
echo '</ul>';В этом коде мы создаём HTML-список, где каждая категория — это ссылка на её архив с отображением названия и описания (если есть). Используем esc_url и esc_html для безопасности вывода.
Кастомизация вывода: количество, иконки и подкатегории
Если нужно ограничить количество выводимых категорий, добавьте в get_categories() параметр 'number' => 5 или другое число.
Для улучшения дизайна можно добавить иконки к категориям. Обычно для этого используют кастомное поле или плагин, например, Advanced Custom Fields. В коде можно получить URL иконки и вывести рядом с названием:
$icon_url = get_term_meta($cat->term_id, 'category_icon', true);
if ($icon_url) {
echo '<img src="' . esc_url($icon_url) . '" alt="' . esc_attr($cat->name) . '" class="category-icon" />';
}Также можно вывести подкатегории каждой главной категории. Для этого в цикле сделайте второй запрос:
$subcats = get_categories(array('parent' => $cat->term_id, 'hide_empty' => false));
if ($subcats) {
echo '<ul class="subcategories">';
foreach ($subcats as $subcat) {
$sublink = get_category_link($subcat->term_id);
echo '<li><a href="' . esc_url($sublink) . '">' . esc_html($subcat->name) . '</a></li>';
}
echo '</ul>';
}Использование плагина Clearfy Pro для управления категориями
Если вы хотите расширить возможности работы с категориями без ручного кода, обратите внимание на плагин Clearfy Pro. Он позволяет управлять отображением таксономий, оптимизировать URL, скрывать пустые категории и многое другое.
Плагин полезен, когда нужно быстро настроить категории для SEO и удобства пользователей, не вдаваясь в код. Но программный подход даёт максимальную гибкость и контроль.
Резюме и рекомендации
Вывод главных категорий в WordPress с помощью кода — задача простая, но часто востребованная. Используя функцию wptips_get_top_categories() и стандартные функции WordPress, вы можете создать удобный и гибкий список категорий для различных целей.
Советы:
- Всегда фильтруйте и экранируйте вывод для безопасности.
- Используйте
hide_emptyв зависимости от задачи. - Для сложных задач подключайте дополнительные мета-поля и кастомные стили.
- Если не хотите писать код, попробуйте плагин Clearfy Pro для расширенного управления.
Такой подход позволит вам создавать удобные интерфейсы и улучшать навигацию по сайту на WordPress.