【问题标题】:Override Menu CSS Wordpress with Functions.php使用 Functions.php 覆盖菜单 CSS Wordpress
【发布时间】:2014-12-11 01:49:08
【问题描述】:

我在我的functions.php中使用了以下覆盖

function wp_nav_menu_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}

add_filter('nav_menu_css_class', 'wp_nav_menu_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'wp_nav_menu_attributes_filter', 100, 1);
add_filter('page_css_class', 'wp_nav_menu_attributes_filter', 100, 1);

这将删除 wordpress 添加到菜单项的类标签。现在我需要做的实际上是将我自己的类名放入 li 标签中,任何人都可以快速填写我如何做到这一点,我已经搜索了谷歌,也许我搜索错了或者不是什么,或者我只是无法理解带有functions.php文件的钩子系统......

使用上述使我的 html 输出为...

    <ul id="menu-homemenu" class="list-group special">
    <li><a href="#">Biography</a></li>
    <li><a href="#">Selected Works</a></li>
    <li><a href="#">Contact Us</a></li>
    </ul>

【问题讨论】:

  • 这是我的菜单,仅称为 menu-homemenu,我在同一页面上有另一个(用于覆盖)我不想将 css 添加到那些 LI 标签。我目前可以使用此代码执行此操作,但它可以执行两个菜单 - mattvarone.com/wordpress/cleaner-output-for-wp_nav_menu

标签: php wordpress


【解决方案1】:

当然,在我发表评论后,我想通了...叹息讨厌这需要整个晚上才能得到它...这个问题为我指明了正确的方向 - How to add custom HTML to wp_nav_menu?

我添加了这个类..

class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
        $output .= "<li class='list-group-item'><a href=".esc_attr($item->url).">".esc_attr($item->title)."</a>";
    }

    function end_el( &$output, $item, $depth = 0, $args = array() ) {
        $output .= "</li>\n";
    }
}

然后将此添加到我的数组中,我在模板中调用了我的导航...

<?php wp_nav_menu(array('menu' => 'HomeMenu','menu_class' => 'list-group special','menu_id' => '','walker' => new Custom_Walker_Nav_Menu)); ?>

【讨论】:

    猜你喜欢
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    相关资源
    最近更新 更多