Intereting Posts
Многопользовательские роли пользователя – возможности не работают Как настроить таргетинг на дочернюю тему с помощью get_bloginfo () ;? Изменение размера старых миниатюр изображений Идентификаторы запросов и хранилища запросов в массиве Как изменить атрибут title для изображения логотипа WP на wp-login.php Редактировать внешний CSS Плоские категории URL, но сохраняющая иерархия? Страницы, перенаправленные в прикрепленное сообщение Авторитетный ответ о том, какие ботинки сначала – плагины или темы? Добавить возможность редактирования редакторами настраиваемых полей Пользовательские сообщения с определенным html Как использовать Transient API в качестве файла cookie удаление @ в emailaddress при отправке ссылки на рассылку в URL-адресе Как отключить боковую панель только в bbPress, а не WordPress? Пост-график (разбиение на страницы с датой, а не номерами)

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 . И я хотел бы иметь противоположный эффект. Код должен применяться только в моем виджетах, сделанных на заказ.

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

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

 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