WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

widget_title хук-фильтр . WP 2.6.0

Позволяет изменить заголовок виджета во фронтенде.

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

add_filter( 'widget_title', 'filter_function_name_1965', 10, 3 );
function filter_function_name_1965( $title, $instance, $id_base ){
	// Делаем что-либо...

	return $title;
}
$title(строка)
Заголовок виджета.
$instance(массив)

Настройки текущего виджета. Например, виджет "Рубрики" в зависимости от настроек может содержать следующие данные:

Array
(
	[title] => Рубрики
	[count] => 0
	[hierarchical] => 1
	[dropdown] => 1
)
$id_base(строка)
ID виджета, который указывается в конструкторе класса виджета. Например виджет "Рубрики" имеет id = categories, а у виджета "Свежие записи" id = recent-posts.

Примеры

#1 Изменим заголовок у всех виджетов.

Обернем заголовок у всех виджетов в тег span с произвольным CSS классом.

/**
 * Изменяет заголовок всех виджетов.
 *
 * @param string $title
 *
 * @return string
 */
function filter_all_widget_title( $title ) {
	return "<span class='my-custom-class'>$title</span>";
}

add_filter( 'widget_title', 'filter_all_widget_title' );

#2 Изменим заголовок только у виджетов "Рубрики".

Сделаем всё тоже самое, что и в первом примере, но только для виджетов "Рубрики".

/**
 * Изменяет заголовок у всех виджетов "Рубрики".
 *
 * @param string $title
 * @param array  $instance
 * @param string $id_base
 *
 * @return string
 */
function filter_widget_categories_title( $title, $instance, $id_base ) {
	if ( 'categories' == $id_base ) {
		$title = "<span class='my-custom-class'>$title</span>";
	}

	return $title;
}

add_filter( 'widget_title', 'filter_widget_categories_title', 10, 3 );

#3 Изменим заголовок у всех виджетов "Рубрики" в виде выпадающего списка.

/**
 * Изменяет заголовок у всех виджетов "Рубрики" в виде выпадающего списка.
 *
 * @param string $title
 * @param array  $instance
 * @param string $id_base
 *
 * @return string
 */
function filter_widget_categories_title( $title, $instance, $id_base ) {
	if ( 'categories' == $id_base && ! empty( $instance['hierarchical'] ) ) {
		$title .= ' в виде выпадающего списка';
	}

	return $title;
}

add_filter( 'widget_title', 'filter_widget_categories_title', 10, 3 );

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

WP_Widget_Pages::widget()
widget_title
WP_Widget_Archives::widget()
widget_title
WP_Widget_Search::widget()
widget_title
WP_Widget_Meta::widget()
widget_title
WP_Widget_Categories::widget()
widget_title
WP_Widget_Recent_Posts::widget()
widget_title
WP_Nav_Menu_Widget::widget()
widget_title
WP_Widget_Calendar::widget()
widget_title
WP_Widget_RSS::widget()
widget_title
WP_Widget_Recent_Comments::widget()
widget_title
WP_Widget_Tag_Cloud::widget()
widget_title
WP_Widget_Custom_HTML::widget()
widget_title
WC_Widget::widget_start()
widget_title
WP_Widget_Text::widget()
widget_title
WP_Widget_Media::widget()
widget_title
wp-includes/widgets/class-wp-widget-pages.php 54
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-archives.php 46
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-search.php 46
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-meta.php 48
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-categories.php 50
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-recent-posts.php 51
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-nav-menu-widget.php 52
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-calendar.php 55
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-rss.php 76
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-recent-comments.php 78
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-tag-cloud.php 80
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-custom-html.php 130
$title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
woocommerce/includes/abstracts/abstract-wc-widget.php 134
if ( $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ) ) { // phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.Found, WordPress.CodeAnalysis.AssignmentInCondition.Found
wp-includes/widgets/class-wp-widget-text.php 220
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
wp-includes/widgets/class-wp-widget-media.php 229
$title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );

Где используется хук (в ядре WP)

wp-includes/default-filters.php 123
add_filter( $filter, 'wptexturize' );
wp-includes/default-filters.php 124
add_filter( $filter, 'convert_chars' );
wp-includes/default-filters.php 125
add_filter( $filter, 'esc_html' );
campusboy 3082youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться