<ul class="nav-list">
<?php
// 调试信息(测试完成后可以删除)
echo '<!-- 调试信息: ';
echo '当前路径: ' . $_SERVER['REQUEST_URI'] . ' | ';
echo '是否首页: ' . (is_home() ? '是' : '否') . ' | ';
echo '是否文章: ' . (is_single() ? '是' : '否');
if (is_single()) {
$categories = get_the_category();
echo ' | 分类: ';
foreach ($categories as $cat) {
echo $cat->slug . '(' . $cat->name . ') ';
}
}
echo ' -->';
// 基础判断
$current_path = $_SERVER['REQUEST_URI'];
$is_home = $current_path == '/' || is_home() || is_front_page();
// 获取当前文章的主分类
$main_category = '';
if (is_single()) {
$categories = get_the_category();
if (!empty($categories)) {
$main_category = $categories[0]->slug;
}
}
// 最终判断 - 修正变量名
$is_qiche = strpos($current_path, '/category/qiche') !== false || $main_category == 'qiche';
$is_huoche = strpos($current_path, '/category/huoche') !== false || $main_category == 'huoche';
?>
<li <?php echo $is_home ? 'class="current"' : ''; ?>>
<a href="/" <?php echo $is_home ? 'aria-current="page"' : ''; ?>>首页</a>
</li>
<li <?php echo $is_qiche ? 'class="current"' : ''; ?>>
<a href="/category/qiche/" <?php echo $is_qiche ? 'aria-current="page"' : ''; ?>>汽车</a>
</li>
<li <?php echo $is_huoche ? 'class="current"' : ''; ?>>
<a href="/category/huoche/" <?php echo $is_huoche ? 'aria-current="page"' : ''; ?>>火车</a>
</li>
</ul>
- li的css样式:class=”current”
- a的css样式:aria-current=”page”
我更喜欢下面的这段代码:
<ul class="nav-list">
<li <?php echo is_front_page() || is_home() ? 'class="current"' : ''; ?>>
<a href="/" <?php echo is_front_page() || is_home() ? 'aria-current="page"' : ''; ?>>首页</a>
</li>
<li <?php echo is_category('qiche') || (is_single() && has_category('qiche')) ? 'class="current"' : ''; ?>>
<a href="/category/qiche/" <?php echo is_category('qiche') || (is_single() && has_category('qiche')) ? 'aria-current="page"' : ''; ?>>汽车</a>
</li>
<li <?php echo is_category('huoche') || (is_single() && has_category('huoche')) ? 'class="current"' : ''; ?>>
<a href="/category/huoche/" <?php echo is_category('huoche') || (is_single() && has_category('huoche')) ? 'aria-current="page"' : ''; ?>>火车</a>
</li>
<li <?php echo is_page('contact') ? 'class="current"' : ''; ?>>
<a href="<?php echo get_permalink(get_page_by_path('contact')); ?>" <?php echo is_page('contact') ? 'aria-current="page"' : ''; ?>>联系我们</a>
</li>
</ul>
说明:
is_page('contact') - 判断当前页面是否是slug为'contact'的页面
get_page_by_path('contact') - 通过slug获取页面对象
get_permalink() - 获取页面的完整URL
如果您使用的是页面ID或标题,也可以这样写:
<!-- 使用页面ID -->
<li <?php echo is_page(123) ? 'class="current"' : ''; ?>>
<a href="<?php echo get_permalink(123); ?>" <?php echo is_page(123) ? 'aria-current="page"' : ''; ?>>联系我们</a>
</li>
<!-- 使用页面标题 -->
<li <?php echo is_page('联系我们') ? 'class="current"' : ''; ?>>
<a href="<?php echo get_permalink(get_page_by_title('联系我们')); ?>" <?php echo is_page('联系我们') ? 'aria-current="page"' : ''; ?>>联系我们</a>
</li>
小提示: 如果您的”联系我们”页面slug不是’contact’,请将代码中的’contact’替换为实际的slug值。您可以在WordPress后台的页面编辑器中查看页面的slug。
本文地址: wordpress导航栏写死判断
版权声明:如发现本站有涉嫌抄袭侵权/违法违规的内容请联系客服!




