如何为add_filter中$count值添加class='count'样式?
给导航菜单计数添加
count类的实现方法 核心修改步骤
- 修改
wp_nav_menu_objects过滤函数
找到你已有的add_filter('wp_nav_menu_objects', ...)函数,把原本直接拼接的$count值,包裹在带count类的HTML标签(比如<span>)里即可。示例代码如下:
add_filter( 'wp_nav_menu_objects', 'add_menu_item_count_with_class' ); function add_menu_item_count_with_class( $items ) { foreach ( $items as $item ) { // 替换成你实际获取$count的逻辑(比如子菜单数量、自定义字段值等) $count = 5; // 示例计数,请替换为你的真实代码 if ( $count ) { // 将计数包裹在带count类的span中,用wp_kses_post保证HTML安全 $item->title .= wp_kses_post( '<span class="count">' . $count . '</span>' ); } } return $items; }
- 确保HTML不被自动转义
WordPress默认会转义菜单标题的HTML,所以需要添加额外过滤允许标题中的合法HTML:
add_filter( 'nav_menu_item_title', 'allow_safe_html_in_menu_title', 10, 2 ); function allow_safe_html_in_menu_title( $title, $item ) { return wp_kses_post( $title ); }
- 应用你的CSS样式
直接使用你准备好的CSS即可,比如:
.count { /* 你的自定义样式示例 */ background: #e74c3c; color: #fff; padding: 2px 5px; border-radius: 8px; font-size: 0.75rem; margin-left: 4px; }
内容的提问来源于stack exchange,提问作者futureyoon
相关产品推荐
相关产品推荐

