Как получить the_category(‘, ‘) с атрибутом ссылки “title”

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

В моей теме я использую <?php echo the_category(', '); ?>, чтобы получить категории, разделенные запятыми, с ссылками на них. Но у этих ссылок нет атрибута title. Есть ли способ их получить?

В функции get_the_category_list нет фильтров, которые позволили бы добавить атрибут title к этим ссылкам, так что вам придется написать собственный код для этого…

<?php
    $categories = get_the_category();
    foreach ( $categories as $i => $cat ) :
        if ( $i ) echo ', ';
?>
    <a href="https://wordpress.stackexchange.com/questions/320140/<?php echo esc_url( get_category_link( $category->term_id ) ); ?>" ><?php echo $category->name; ?></a>
<?php endforeach; ?>

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

Для решения задачи добавления атрибута "title" в ссылки категорий в WordPress, необходимо произвести некоторую доработку стандартного функционала, поскольку встроенная функция the_category() не поддерживает такую возможность напрямую. Рассмотрим возможное решение этой проблемы.

Теория

Функция the_category(', ') в WordPress возвращает список категорий для текущего поста, разделённых запятой, с гиперссылками на страницы этих категорий. Однако, она не предоставляет возможности добавления дополнительных атрибутов HTML, таких как "title", в теги <a>. Для этого нам потребуется работать напрямую с объектами категорий и самостоятельно генерировать HTML-код ссылок с необходимыми атрибутами.

Пример

Рассмотрим пример кода, который позволяет извлечь объекты категорий и сформировать список ссылок так, чтобы каждая из них содержала атрибут "title":

<?php
$categories = get_the_category();
foreach ( $categories as $i => $category ) :
    if ( $i ) echo ', ';
    // Генерация ссылки с атрибутом title
    $category_link = esc_url( get_category_link( $category->term_id ) );
    $category_name = esc_html( $category->name );
    echo '<a href="' . $category_link . '" title="Перейти в категорию: ' . $category_name . '">' . $category_name . '</a>';
endforeach;
?>

Применение

  1. Извлечение данных категорий: Мы используем функцию get_the_category(), чтобы получить массив объектов категорий для текущего поста.

  2. Генерация ссылки: Для каждой категории мы извлекаем её идентификатор term_id и имя name, чтобы использовать их в качестве URL и названия соответственно.

  3. Добавление атрибута "title": Применяем функцию esc_html() для безопасного вывода названия в атрибут "title", чтобы избежать проблем с безопасностью и корректно отобразить текст.

  4. Вывод результата: Каждая категория выводится как ссылка с атрибутом "title", который содержит текст "Перейти в категорию" и имя категории – это улучшает доступность и UX, предоставляя пользователю дополнительную информацию о ссылке.

С помощью этого подхода вы сможете добавить атрибуты "title" к ссылкам категорий в WordPress, обеспечив более богатый и понятный интерфейс для пользователей вашего сайта.

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

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