WordPress开发:如何为激活状态的分类添加active class?
给WordPress分类导航添加激活状态类
要实现当前分类页面的导航项自动添加active类,只需在循环中判断当前页面的分类ID与遍历的分类ID是否匹配,动态生成类名即可。以下是修改后的代码:
<?php $args = array( 'orderby' => 'slug', 'order' => 'ASC', 'parent' => 0, 'hide_empty' => false ); $categories = get_categories( $args ); // 获取当前页面的分类对象,仅在分类归档页有效 $current_category = get_queried_object(); $current_cat_id = is_category() ? $current_category->term_id : 0; foreach( $categories as $category ){ // 判断当前遍历的分类是否为页面激活的分类 $active_class = $category->term_id === $current_cat_id ? 'active' : ''; // 拼接class属性,保留原有ctg类的同时添加激活类 $class_str = "ctg {$active_class}"; // 移除原链接中的多余空格,避免跳转异常 echo '<li><a class="' . $class_str . '" href="' . get_category_link( $category->term_id ) . '"><p>' . $category->name . '</p></a></li>'; } ?>
关键说明
get_queried_object():在WordPress分类归档页中,这个函数会返回当前显示的分类Term对象,通过它可以拿到当前分类的IDis_category():用于判断当前页面是否为分类归档页,避免非分类页时出现错误- 动态拼接类名:当分类ID匹配时自动添加
active类,不匹配则为空,不影响原有ctg类的功能
内容的提问来源于stack exchange,提问作者shouu
相关产品推荐
相关产品推荐

