Разделите слово из wp_list_categories

Со следующим кодом я показываю список подкатегорий:

<ul class="subcats-blog"> <?php if ( is_category() ) { $current_cat = get_query_var('cat'); wp_list_categories('&title_li=&child_of='.$current_cat); } ?> </ul> 

То, что я пытаюсь сделать, – это удалить слово «новости» из любого элемента списка. Я решил, что могу сделать это с помощью preg_replace, но проблема в том, что мои знания о php очень ограничены, и я не могу склеить их вместе. Любая помощь будет принята с благодарностью.

Я предполагаю, что вы хотите заменить строку «news» в именах категорий, а не в ссылках категории.

По умолчанию эталон категории содержит эту строку :

 $cat_name = apply_filters( 'list_cats', $cat_name, $category ); 

который позволяет изменять имена категорий, которые будут отображаться.

Поэтому вы можете попробовать (непроверенный):

 <ul class="subcats-blog"> <?php if ( is_category() ) { $current_cat = get_query_var('cat'); // Add your custom replace filter: add_filter( 'list_cats', 'wpse_155534_replace' ); wp_list_categories('&title_li=&child_of='.$current_cat); // Remove your custom replace filter: remove_filter( 'list_cats', 'wpse_155534_replace' ); } ?> </ul> 

где

 /** * Replace the "news" string in the category names * * @see http://wordpress.stackexchange.com/a/155539/26350 * * @param string $cat_name * @return string $cat_name */ function wpse_155534_replace( $cat_name ) { return str_ireplace( 'news', '', $cat_name ); }