Вопрос или проблема
В моей теме я использую <?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;
?>
Применение
-
Извлечение данных категорий: Мы используем функцию
get_the_category()
, чтобы получить массив объектов категорий для текущего поста. -
Генерация ссылки: Для каждой категории мы извлекаем её идентификатор
term_id
и имяname
, чтобы использовать их в качестве URL и названия соответственно. -
Добавление атрибута "title": Применяем функцию
esc_html()
для безопасного вывода названия в атрибут "title", чтобы избежать проблем с безопасностью и корректно отобразить текст. -
Вывод результата: Каждая категория выводится как ссылка с атрибутом "title", который содержит текст "Перейти в категорию" и имя категории – это улучшает доступность и UX, предоставляя пользователю дополнительную информацию о ссылке.
С помощью этого подхода вы сможете добавить атрибуты "title" к ссылкам категорий в WordPress, обеспечив более богатый и понятный интерфейс для пользователей вашего сайта.