Функция get_category_link()
используется для получения URL страницы категории по её ID или объекту категории. Это удобно для создания ссылок на категории в шаблонах и плагинах WordPress.
get_category_link( int|object $category ): string
Параметры
- $category (int|object) (обязательный)
ID категории или объект категории, для которой нужно получить ссылку.
Возвращаемое значение
- string — URL категории в случае успеха, или пустая строка, если категория не найдена.
Описание
Функция возвращает корректную ссылку на страницу категории на основе переданного ID категории или объекта категории. Она работает с использованием внутренней функции get_term_link()
и поддерживает фильтрацию результата через хук category_link
.
Важно
get_category_link()
можно использовать в плагинах или темах, начиная с действия setup_theme
. Любое более раннее использование, например на этапе plugins_loaded
, вызовет фатальную ошибку.
Пример 1: Получение ссылки на категорию по её названию
В этом примере мы получаем ссылку на категорию по её названию и выводим её в виде HTML-ссылки.
<?php
// Получим ID категории по её названию
$category_id = get_cat_ID( 'Домашние животные' );
// Получим ссылку на категорию
$category_link = get_category_link( $category_id );
?>
<!-- Выведем ссылку на категорию -->
<a href="<?php echo esc_url( $category_link ); ?>" title="Домашние животные">Домашние животные</a>
Пример 2: Вывод списка категорий с количеством записей
Этот пример демонстрирует, как вывести список категорий с использованием Bootstrap для стилизации, где каждая категория отображается с количеством записей и ссылкой на неё.
<div class="card border border-0 m-2" style="width: 250px;">
<div class="card-header bg-primary text-white">
<h5>Категории</h5>
</div>
<?php
// Получаем все категории
$categories = get_categories();
// Выводим каждую категорию с количеством записей
foreach ( $categories as $category ) {
echo '<a class="text-decoration-none list-group-item list-group-item-action text-dark" href="' . esc_url( get_category_link( $category->term_id ) ) . '">';
echo '<div class="d-flex justify-content-between align-items-start">';
echo esc_html( $category->name );
echo '<span class="badge bg-primary rounded-pill">' . esc_html( $category->count ) . '</span>';
echo '</div>';
echo '</a>';
}
?>
</div>
Пример 3: Использование объекта категории для получения ссылки
Вместо передачи ID категории можно передать объект категории, например, из функции get_category()
.
<?php
// Получаем объект категории
$category = get_category( 3 );
// Получаем ссылку на категорию
$category_link = get_category_link( $category );
?>
<!-- Выведем ссылку на категорию -->
<a href="<?php echo esc_url( $category_link ); ?>" title="<?php echo esc_attr( $category->name ); ?>">
<?php echo esc_html( $category->name ); ?>
</a>
Заключение
Функция get_category_link()
является удобным способом получить URL категории в WordPress. Она позволяет легко интегрировать категории в навигацию и интерфейс сайта, создавая ссылки на страницы категорий.