widget_title
Это хук WordPress - widget_title. Плагин его просто использует.
Позволяет изменить заголовок виджета во фронтенде.
Использование
add_filter( 'widget_title', 'wp_kama_widget_title_filter', 10, 3 );
/**
* Function for `widget_title` filter-hook.
*
* @param string $title The widget title.
* @param array $instance Array of settings for the current widget.
* @param mixed $id_base The widget ID.
*
* @return string
*/
function wp_kama_widget_title_filter( $title, $instance, $id_base ){
// filter...
return $title;
}
- $title(строка)
- Заголовок виджета.
- $instance(массив)
Настройки текущего виджета. Например, виджет "Рубрики" в зависимости от настроек может содержать следующие данные:
Array ( [title] => Рубрики [count] => 0 [hierarchical] => 1 [dropdown] => 1 )
- $id_base(строка)
- ID виджета, который указывается в конструкторе класса виджета. Например виджет "Рубрики" имеет
id = categories, а у виджета "Свежие записи"id = recent-posts.
Примеры
#1 Изменим заголовок только у виджетов "Рубрики".
Сделаем всё то же самое, что и в первом примере, но только для виджетов "Рубрики".
/**
* Изменяет заголовок у всех виджетов "Рубрики".
*
* @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 );
#2 Изменим заголовок у всех виджетов.
Обернем заголовок у всех виджетов в тег 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' );
#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 );Где вызывается хук
widget_title
widget_title
widget_title
woocommerce/includes/abstracts/abstract-wc-widget.php 165
$title = apply_filters( 'widget_title', $this->get_instance_title( $instance ), $instance, $this->id_base );
woocommerce/includes/widgets/class-wc-widget-brand-thumbnails.php 113
$title = apply_filters( 'widget_title', $instance['title'], $instance, $this->woo_widget_idbase );
woocommerce/includes/widgets/class-wc-widget-brand-nav.php 117
$title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );