【问题标题】:Add active class to WordPress nav将活动类添加到 WordPress 导航
【发布时间】:2017-09-02 21:11:41
【问题描述】:

我在这里有很长的导航,我必须将其导入 WordPress。

<header class="small">
    <div class="yellow-stripe"></div>
    <div class="container">
        <nav role="navigation">
            <ul class="navigation">
                <li>
                    <a href="aboutus">About us</a>
                    <ul class="sub-navigation">
                        <li><a href="">We are</a></li>
                        <li><a href="">Our story</a></li>
                        <li><a href="why">Why Ledil</a></li>
                        <li><a href="contacts-europe">Where</a></li>
                        <li><a href="management">Management</a></li>
                        <li><a href="">Investors</a></li>
                    </ul>
                </li>
                <li><a href="../news_all">News</a></li>
                <li><a href="../events_calendar">Events</a></li>
                <li><a href="../qa">FAQ</a></li>
            </ul>
        </nav>
        <ul class="lang">
            <li class="active"><a href="">EN</a></li>
            <li><a href="">ES</a></li>
            <li><a href="">RUS</a></li>

        </ul>
    </div>
    <div class="nav-button">
        <div class="line"></div>
        <div class="line"></div>
        <div class="line"></div>

</header>

它是用 HTML 制作的,现在我必须将它导入 WordPress。我让 WordPress 包含标题,并且可以很好地加载整个内容,它在页面上看起来很棒,但我需要将引导导航的 class="active" 添加到当前页面和子页面。

我通过谷歌搜索找到了一些答案,但我并没有真正走得太远。

我的 function.php 看起来像这样:

<?php
    remove_filter('the_content', 'wpautop');

    remove_filter('the_excerpt', 'wpautop');

    add_filter('nav_menu_css_class', 'special_nav_class', 10, 2);
    function special_nav_class($classes, $item){
        if( in_array('current_page_parent', $classes) ){
            $classes[] = 'active ';
        }
    return $classes;
    }
?>

我不确定我应该尝试什么。我觉得整个 WordPress 的东西很奇怪。

这里似乎没有 current_page_item 类。我应该做一些特别的事情来启用它吗?

li.current_page_parent a {} 不起作用,在标签内设置 class="&lt;?php if (is_page('name-of-page')) echo 'active'; ?&gt;" 也不起作用...该死的 WordPress...

没关系..我只是有点慢....我把class="&lt;?php if (is_page('why')) echo 'active'; ?&gt;"放在每个 li 元素中。

【问题讨论】:

  • li.current_page_item a { background-color: #34676b; }
  • 试过了,颜色:黄色;没用:(

标签: php html wordpress


【解决方案1】:

如果有人来到这里: 您应该检查该页面是否处于活动状态或该页面是否是另一个页面的子页面

<li class="<?php if (is_page('offices')) echo 'active'; ?>"><a href="/offices">Offices</a></li>

检查页面是否为“办公室”和

<li class="<?php if (is_page_child(143)) echo 'active'; ?> echo 'active'; ?>">

检查页面是否是 id 为“143”的页面的子页面,然后在 class="" 中回显“活动”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多