single_cat_titleхук-фильтрWP 2.0.10

Позволяет изменить заголовок архивной страницы рубрики (категории).

Фильтр срабатывает в функции single_term_title() и для производной от неё функции single_cat_title().

Фильтр срабатывает только на страницах рубрик — когда выполняется условный тег is_category().

Использование

add_filter( 'single_cat_title', 'wp_kama_single_cat_title_filter' );

/**
 * Function for `single_cat_title` filter-hook.
 * 
 * @param string $term_name Category name for archive being displayed.
 *
 * @return string
 */
function wp_kama_single_cat_title_filter( $term_name ){

	// filter...
	return $term_name;
}
$term_name(строка)
Имя рубрики, которое будет использовано в заголовке страницы рубрики.

Примеры

0

#1 Обрежем длинный заголовок

Допустим, наш сайт не рассчитан на слишком длинные заголовки и нам нужно обрезать их до 20 символов, а в конце добавить многоточие:

add_filter( 'single_cat_title', 'strim_cat_title' );
function strim_cat_title( $title ) {
	return mb_strimwidth( $title, 0, 23, '...' );
}

Минус такого подхода: обрежется текст в теге <title>. Решение: подключить фильтр после вывода title:

add_action( 'wp_head', function() {
	add_filter( 'single_cat_title', 'trim_cat_title' );
} );

function trim_cat_title( $title ) {
	return mb_strimwidth( $title, 0, 23, '...' );
}
0

#2 Управление выводом заголовка через опции темы

Благодаря этому фильтру можно настроить изменение заголовка в настройках темы. К примеру, задавать цвет заголовка и цвет границы вокруг него.

Отрывок кода ниже взят из темы ColorMag, хотя почти 1 в 1 используется так же в темах из репозитория: ColorNews, The NewsMag, Creative Blog, Madar. Код приведен частично и показывает лишь принцип!

/**
 * Использование хуков для цвета категории в заголовках архива
 */
function colormag_colored_category_title( $title ) {

	$color_value        = colormag_category_color( get_cat_id( $title ) );
	$color_border_value = colormag_category_color( get_cat_id( $title ) );

	if ( ! empty( $color_value ) ) {
		return '<h1 class="page-title" style="border-bottom-color: ' . $color_border_value . '">' . '<span style="background-color: ' . $color_value . '">' . $title . '</span></h1>';
	}
	else {
		return '<h1 class="page-title"><span>' . $title . '</span></h1>';
	}
}

function colormag_category_title_function( $category_title ) {
	add_filter( 'single_cat_title', 'colormag_colored_category_title' );
}

Список изменений

С версии 2.0.10 Введена.

Где вызывается хук

single_term_title()
single_cat_title
wp-includes/general-template.php 1591
$term_name = apply_filters( 'single_cat_title', $term->name );

Где используется хук в WordPress

wp-includes/default-filters.php 160
add_filter( $filter, 'wptexturize' );
wp-includes/default-filters.php 161
add_filter( $filter, 'strip_tags' );