Как вывести список рубрик в ВордПресс по ID

Чтобы вывести список рубрик (категорий) по их ID с помощью шорткода в WordPress, вы можете использовать функцию get_categories() или WP_Term_Query. Вот пример кода, который создает шорткод для вывода рубрик по ID:

1. Создайте шорткод для вывода рубрик

Добавьте следующий код в файл вашей темы (например, functions.php) или в плагин:

function custom_shortcode_categories_by_id( $atts ) {
    // Извлекаем атрибуты, переданные в шорткод
    $atts = shortcode_atts( array(
        'ids' => '', // ID категорий через запятую
    ), $atts, 'categories_by_id' );

    // Проверяем, указаны ли ID
    if ( empty( $atts['ids'] ) ) {
        return 'ID категорий не указаны.';
    }

    // Преобразуем строку с ID в массив
    $ids = explode( ',', $atts['ids'] );

    // Запрос для получения категорий по ID
    $categories = get_categories( array(
        'include' => $ids, // Используем массив ID
        'hide_empty' => false, // Показывать даже пустые категории
    ) );

    // Проверяем, есть ли категории
    if ( empty( $categories ) ) {
        return 'Категории не найдены.';
    }

    // Строка для вывода категорий
    $output = '<ul>';

    // Выводим категории
    foreach ( $categories as $category ) {
        $output .= '<li>' . esc_html( $category->name ) . ' - <a href="' . esc_url( get_category_link( $category->term_id ) ) . '">Смотреть</a></li>';
    }

    $output .= '</ul>';

    return $output;
}

// Регистрируем шорткод
add_shortcode( 'categories_by_id', 'custom_shortcode_categories_by_id' );

2. Использование шорткода

Теперь вы можете использовать шорткод в любом месте вашего контента. Например, чтобы вывести категории с ID 1, 2, и 3, вы можете использовать:

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

  • shortcode_atts(): Устанавливает значения по умолчанию для атрибутов шорткода.
  • explode(',', $atts['ids']): Преобразует строку с ID в массив.
  • get_categories(): Получает категории по указанным ID.
  • include: Позволяет указать массив ID категорий для вывода.
  • hide_empty: Указывает, показывать ли пустые категории (в данном случае установлено в false).

Почитаем еще?: