我正在尝试获取默认的WordPress类别小部件,以将current-cat类添加到单个帖子中,就像在类别存档页面上一样。
我尝试将以下代码从对this post的答案中添加到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;
}
但这会导致以下错误:
警告:在第6行的functions.php中为foreach()提供了无效的参数
答案 0 :(得分:1)
您的参数有误,此过滤器中仅使用了一个参数,因此您的功能应如下所示
function sgr_show_current_cat_on_single($args)
有关更多信息,请点击此处https://developer.wordpress.org/reference/functions/wp_list_categories/