В этой статье мы разберемся с выводом заголовков (названий) рубрик на различных страницах сайта на WordPress.
1. Первая ситуация – вам нужно вывести заголовок рубрики (таксономии) при разработке страницы категории, архивов, меток и кастомных таксономий.
Для этих целей используют несколько подходов.
Во-первых – это функция — single_cat_title(). Используется за пределами цикла и будет работать только на страницах таксономий.
Пример использования этой функции следующий:
<?php single_cat_title( $prefix, $display ); ?>
Основные параметры здесь $prefix(строка) – это текст, который будет находиться перед заголовком и $display(логический) – которые определяет, выводить ли на экран результат работы функции (1) или же скрыть и дать возможность использовать в последующей обработке кода.
На практике, чаще всего используют следующий подход:
<p><?php single_cat_title('Все статьи по теме: '); ?>.</p>
Если же вам нужно создать переменную с названием категории, метки или архива, то можно использовать следующий код.
<?php $current_category = single_cat_title('', 0); ?>
Аналогом данной функции в WordPress является функция — single_term_title(), которая была введена в движок, начиная с версии 3.1.
<?php single_term_title( $prefix = '', $display = true ) ?>
Она принимает точно такие же параметры, как и описана выше функция.
Еще один способ получения названия рубрики на странице самой рубрики это:
<?php
if( is_category() )
echo get_queried_object()->name;
?>
2 ситуация – вывести название категории, если есть ее id.
Первая функция, которая поможет решить эту задачу — это get_cat_name().
<?php get_cat_name( $cat_id ) ?>
В качестве параметра она принимает id рубрики (таксономии) — $cat_id.
Пример использования данной функции:
<?php
// получим
$catname = get_cat_name(4);
// используем в строке
echo 'Вы находитесь в категории: '. $catname;
?>
Второй вариант – это использование функции — get_category().
Пример ее использования в этих целях.
<?php
$category = get_category(7);
echo $category->name;
?>
3 ситуация – вывести название рубрики на странице поста.
Для этих целей можно использовать функции: get_the_category() или же the_category().
Приведу несколько примеров того, как их можно использовать.
Вывод заголовка первой (основной) категории поста.
<?php
$categories = get_the_category();
if($categories[0]){
echo '<a href="' . get_category_link($categories[0]->term_id ) . '">'. $categories[0]->name . '</a>';
}
?>
Или так:
<?php $cat = get_the_category(); echo $cat[0]->cat_name; ?>
Если пост привязан к нескольким рубрикам, то их можно вывести через запятую.
<?php
$categories = get_the_category();
if($categories){
foreach($categories as $category) {
$out .= '<a href="'.get_category_link($category->term_id ).'">' . $category->name . '</a>, ';
}
echo trim($out, ', ');
}
?>
Функция the_category(), принимает следующие параметры:
<?php the_category( $separator, $parents, $post_id ); ?>
Часто используют именно первый параметр $separator, где в строчном виде указывают разделитель между названиями категорий.
Например.
<?php
// Разделитель стрелка
the_category(' » ');
// Разделитель запятая
the_category(' , ');
?>
На этом сегодня все. Теперь вы можете выводить название таксономий в любой удобный для вас способ, подбирая нужные функции под конкретно ваши задачи.