wp_list_categories + виджет

В приведенном ниже коде я добавил тэг span +, поместив счет категории внутри ссылки.

add_filter('wp_list_categories', 'cat_count_span'); function cat_count_span($links) { $links = str_replace('</a> (', '<span>', $links); $links = str_replace(')', '</span></a>', $links); return $links; } 

Проблема, с которой я сталкиваюсь … эта модификация будет применяться ко всем страницам или виджетам, использующим wp_list_categories . И я хотел бы иметь противоположный эффект. Код должен применяться только в моем виджетах, сделанных на заказ.

Что мне нужно изменить, чтобы он работал так, как я бы хотел, чтобы он работал?

Solutions Collecting From Web of "wp_list_categories + виджет"

У вашего виджета должен быть метод, который выглядит примерно так:

 public function widget( $args, $instance ) { echo $args['before_widget']; if ( ! empty( $instance['title'] ) ) { echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title']; } wp_list_categories(); echo $args['after_widget']; } 

Примените фильтр внутри этого метода, а затем удалите его:

 public function widget( $args, $instance ) { echo $args['before_widget']; if ( ! empty( $instance['title'] ) ) { echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title']; } add_filter('wp_list_categories', 'cat_count_span'); wp_list_categories(); remove_filter('wp_list_categories', 'cat_count_span'); echo $args['after_widget']; } 

То же самое работает с методом бэкэнд- form .

Справка:
https://codex.wordpress.org/Widgets_API#Example