wp_list_categories

Позволяет изменить HTML-вывод списка таксономии
Хук WordPress
INT 2.1.0
WordPress Icon

Описание хука

Хук «wp_list_categories» позволяет изменить HTML-вывод списка таксономий (категорий) в WordPress.

Этот хук используется для изменения вывода списка таксономий, который генерируется функцией wp_list_categories(). Он позволяет определить структуру и содержимое списка категорий, а также добавить дополнительные элементы или изменить существующие.

Использование

apply_filters( 'wp_list_categories', string $output, array|string $args )

Хук «wp_list_categories» принимает два параметра: $output (строка HTML-вывода) и $args (массив или строка аргументов для списка таксономий).

$output — HTML-вывод списка таксономий.

$args — массив или строка аргументов для списка таксономий. См. функцию wp_list_categories() для получения информации о принимаемых аргументах. Дополнительные аргументы можно указать с помощью функции wp_list_categories( … $args ).

  • $output — строка HTML-вывода.
  • $args — массив или строка аргументов для списка таксономий. См. WP_Term_Query::__construct() для получения информации о принимаемых аргументах.
<code>$args = array(
  'taxonomy'     => 'category', // таксономия
  'orderby'      => 'name', // сортировка по имени
  'show_count'   => true, // показывать количество записей в категории
  'hide_empty'   => false, // показывать пустые категории
  'title_li'     => '', // заголовок списка
  'echo'         => false // не выводить список сразу, вернуть его в переменную
);
$categories = wp_list_categories( $args );
if ( $categories ) {
  echo '<ul>' . $categories . '</ul>';
}

В данном примере мы создаем массив $args с аргументами для списка таксономий. Затем мы используем функцию wp_list_categories() с этими аргументами, чтобы получить HTML-вывод списка категорий.

Если список категорий не пустой, мы выводим его внутри тега <ul>.

Примеры использования

Изменение HTML-вывода хука wp_list_categories


/**
 * Функция для изменения HTML-вывода хука wp_list_categories.
 *
 * @param string $output HTML-вывод.
 * @param array|string $args Аргументы хука.
 * @return string Измененный HTML-вывод.
 */
function custom_wp_list_categories( $output, $args ) {
    // Внесение изменений в HTML-вывод
    $output = str_replace( '<ul>', '<div class="categories-list"><ul>', $output );
    $output = str_replace( '</ul>', '</ul></div>', $output );
    
    return $output;
}
add_filter( 'wp_list_categories', 'custom_wp_list_categories', 10, 2 );

Формирование списка категорий с использованием хука wp_list_categories


/**
 * Функция для формирования списка категорий с использованием хука wp_list_categories.
 */
function custom_category_list() {
    $args = array(
        'taxonomy' => 'category',
        'title_li' => '',
        'show_option_none' => 'No categories found',
        'echo' => false,
    );
    
    $categories = wp_list_categories( $args );
    
    if ( $categories ) {
        echo '<ul>' . $categories . '</ul>';
    } else {
        echo 'No categories found';
    }
}

Добавление дополнительных аргументов к хуку wp_list_categories


/**
 * Функция для добавления дополнительных аргументов к хуку wp_list_categories.
 */
function custom_category_list() {
    $args = array(
        'taxonomy' => 'category',
        'title_li' => '',
        'show_option_none' => 'No categories found',
        'orderby' => 'name',
        'order' => 'ASC',
        'depth' => 2,
        'hide_empty' => false,
        'exclude' => '1,3,5',
        'echo' => false,
    );
    
    $categories = wp_list_categories( $args );
    
    if ( $categories ) {
        echo '<ul>' . $categories . '</ul>';
    } else {
        echo 'No categories found';
    }
}

Создание фильтра для хука wp_list_categories


/**
 * Функция для создания фильтра для хука wp_list_categories.
 *
 * @param array $args Аргументы хука.
 * @return array Измененные аргументы хука.
 */
function custom_wp_list_categories_args( $args ) {
    // Внесение изменений в аргументы хука
    $args['orderby'] = 'count';
    $args['order'] = 'DESC';
    
    return $args;
}
add_filter( 'wp_list_categories_args', 'custom_wp_list_categories_args' );

Использование хука wp_list_categories для вывода категорий в меню сайта


/**
 * Функция для использования хука wp_list_categories для вывода категорий в меню сайта.
 */
function custom_category_menu() {
    $args = array(
        'taxonomy' => 'category',
        'title_li' => '',
        'echo' => false,
    );
    
    $categories = wp_list_categories( $args );
    
    if ( $categories ) {
        echo '<ul class="menu">' . $categories . '</ul>';
    }
}

Вопросы и ответы

Как изменить HTML-разметку вывода списка категорий?

Для изменения HTML-разметки вывода списка категорий в WordPress можно использовать хук wp_list_categories. Этот хук позволяет изменить HTML-код, который генерируется при выводе списка категорий.

Для использования хука wp_list_categories необходимо передать два параметра: $output и $args. Параметр $output содержит исходный HTML-код, который нужно изменить, а параметр $args содержит аргументы для вывода списка категорий.

Пример использования хука wp_list_categories:

$output = apply_filters( 'wp_list_categories', $output, $args );

Как добавить классы к элементам списка категорий?

Для добавления классов к элементам списка категорий в WordPress можно использовать аргумент class при вызове функции wp_list_categories. Этот аргумент позволяет добавить классы к элементам списка категорий.

Пример использования аргумента class:

$args = array(
    'class' => 'custom-class',
);
wp_list_categories( $args );

Как изменить порядок вывода категорий?

Для изменения порядка вывода категорий в WordPress можно использовать аргумент orderby при вызове функции wp_list_categories. Этот аргумент позволяет указать, по какому полю сортировать категории.

Пример использования аргумента orderby:

$args = array(
    'orderby' => 'name',
);
wp_list_categories( $args );

Как исключить определенные категории из списка?

Для исключения определенных категорий из списка, можно использовать аргумент ‘exclude’ при вызове функции wp_list_categories(). В этом аргументе указывается список идентификаторов категорий, которые необходимо исключить.


$args = array(
    'exclude' => '1,2,3' // идентификаторы категорий, которые нужно исключить
);
wp_list_categories( $args );

Как добавить иконки к элементам списка категорий?

Для добавления иконок к элементам списка категорий, можно использовать аргумент ‘link_before’ при вызове функции wp_list_categories(). В этом аргументе указывается HTML-код, который будет добавлен перед каждым элементом списка.


$args = array(
    'link_before' => '<i class="fa fa-folder"></i> ' // HTML-код иконки
);
wp_list_categories( $args );

Как вывести только определенные категории?

Для вывода только определенных категорий, можно использовать аргумент ‘include’ при вызове функции wp_list_categories(). В этом аргументе указывается список идентификаторов категорий, которые нужно вывести.


$args = array(
    'include' => '4,5,6' // идентификаторы категорий, которые нужно вывести
);
wp_list_categories( $args );

Как вывести количество записей в каждой категории?

Для вывода количества записей в каждой категории при использовании функции wp_list_categories(), необходимо использовать аргумент 'show_count' со значением true. Например:


$args = array(
    'taxonomy'   => 'category',
    'show_count' => true
);
wp_list_categories( $args );

Как изменить формат даты в элементах списка категорий?

Для изменения формата даты в элементах списка категорий при использовании функции wp_list_categories(), необходимо использовать аргумент 'date_format' со значением, определенным в формате даты PHP. Например:


$args = array(
    'taxonomy'     => 'category',
    'date_format'  => 'd.m.Y'
);
wp_list_categories( $args );

Как вывести дополнительные данные о категориях?

Для вывода дополнительных данных о категориях при использовании функции wp_list_categories(), необходимо использовать аргумент 'show_option_all' со значением true. Например:


$args = array(
    'taxonomy'        => 'category',
    'show_option_all' => true
);
wp_list_categories( $args );

Хук wp_list_categories позволяет фильтровать HTML-вывод списка таксономий. Он принимает два параметра: $output — HTML-вывод и $args — массив или строку аргументов для списка таксономий. Хук предоставляет возможность изменять вывод списка категорий, добавлять количество записей, изменять формат даты и выводить дополнительные данные о категориях.

Связанные элементы

  • Функция wp_dropdown_categories(): выводит выпадающий список категорий.
  • Функция wp_list_categories(): выводит список категорий в виде HTML.
  • Функция get_categories(): возвращает массив объектов категорий.
  • Хук pre_get_terms: позволяет изменить аргументы запроса перед выполнением запроса категорий или терминов таксономий.
  • Хук terms_clauses: позволяет изменить SQL-запрос для получения категорий или терминов таксономий.
  • Хук get_terms: позволяет изменить результат запроса категорий или терминов таксономий.
  • Класс WP_Term_Query: используется для выполнения запросов категорий и терминов таксономий.
Обсуждение