класс current-cat на отдельных постах - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь получить виджет категорий WordPress по умолчанию для добавления класса current-cat для отдельных сообщений, как это делается на страницах архива категорий.

Я пытался добавить следующий код из ответа на этот пост to functions.php:

add_filter( 'wp_list_categories', 'sgr_show_current_cat_on_single', 10, 2 );
function sgr_show_current_cat_on_single( $output, $args ) {
    if ( is_single() ) :
        global $post;
        $terms = get_the_terms( $post->ID, $args['taxonomy'] );
        foreach( $terms as $term ) {
            if ( preg_match( '#cat-item-' . $term ->term_id . '#', $output ) ) {
                $output = str_replace('cat-item-'.$term ->term_id, 'cat-item-'.$term ->term_id . ' current-cat', $output);
            }
        }
    endif;
    return $output;
}

Но это приводит к следующей ошибке:

Предупреждение: неверный аргумент для foreach () в функциях.php на линии 6

1 Ответ

0 голосов
/ 25 июня 2018

Ваши параметры неверны, только один параметр используется в этом фильтре, поэтому ваша функция должна быть такой

   function sgr_show_current_cat_on_single($args) 

Подробнее см. Здесь https://developer.wordpress.org/reference/functions/wp_list_categories/

...