首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用w3css框架的Wordpress nav

使用w3css框架的Wordpress nav
EN

Stack Overflow用户
提问于 2016-10-04 10:39:07
回答 2查看 649关注 0票数 0

我正在尝试在所有设备上实现以下代码作为导航栏。但是,我不能这样做。我正在使用带有WordPress的w3-css框架。

代码语言:javascript
复制
<div class="w3-top w3-navbar">
 <ul class="w3-navbar w3-blue-grey w3-left-align ">
   <li><a href="<?php  echo home_url(); ?>" class="w3-padding-large w3-large w3-highway-blue"><i class="topnav-icons fa fa-home w3-margin-right"></i><?php  bloginfo ('name'); ?></a></li>

    <?php 

$args = array(

    'theme_location' => 'primary',
    'container_class' => 'w3-top',
    'menu_class' => 'w3-navbar',


);


?>

<?php  wp_nav_menu( $args); ?>
 <li class="w3-hide-small w3-right w3-padding-large">+91 987654321</li>
 </ul>
</div>


  <!-- Navbar on small screens -->
  <div id="navDemo" class="w3-hide w3-hide-large w3-hide-medium w3-top" style="margin-top:51px">
  <ul class="w3-navbar w3-left-align w3-large w3-theme">
   <?php  wp_nav_menu($args); ?>
   </ul>
   </div>
EN

回答 2

Stack Overflow用户

发布于 2016-10-05 09:47:19

在外观->菜单下的主题设置中,确保您想要输出的菜单的位置被设置为“主”,正如您在$args数组中的设置一样。

另外,我注意到您的第二个wp_nav_menu()实例没有包含$args数组。如果希望第一个和第二个导航菜单输出为相同的导航菜单,则至少需要添加一个数组,该数组在数组的"theme_location“索引中指定相同的位置。

票数 0
EN

Stack Overflow用户

发布于 2021-02-10 03:01:43

尝试在您的functions.php中使用一些filters

代码语言:javascript
复制
function w3css_nav_menu_submenu_css_class_filter ($classes, $args) {
    if ($args->theme_location === 'primary') {
        $classes []= 'w3-dropdown-content w3-bar-block w3-card';
    }
    else {
        $classes []= 'w3-margin-left';
    }
    return $classes;
}
add_filter('nav_menu_submenu_css_class', 'w3css_nav_menu_submenu_css_class_filter', 10, 2);

function w3css_nav_menu_css_class_filter ($classes, $item, $args, $depth) {
    if ($args->theme_location === 'primary') {
        $classes []= 'w3-bar-item';
    }
    return $classes;
}
add_filter('nav_menu_css_class', 'w3css_nav_menu_css_class_filter', 10, 4);

function w3css_nav_menu_link_attributes_filter ($atts, $item, $args) {
    if ($args->theme_location === 'primary') {
        $atts['class'] = 'w3-button';
    }
    return $atts;
}
add_filter('nav_menu_link_attributes', 'w3css_nav_menu_link_attributes_filter', 10, 3);

// From: https://stackoverflow.com/questions/8448978/wordpress-how-do-i-know-if-a-menu-item-has-children
function menu_set_dropdown( $sorted_menu_items, $args ) {
    if ($args->theme_location === 'primary') {
        $last_top = 0;
        foreach ( $sorted_menu_items as $key => $obj ) {
            // it is a top lv item?
            if ( 0 == $obj->menu_item_parent ) {
                // set the key of the parent
                $last_top = $key;
            } else {
                $sorted_menu_items[$last_top]->classes['w3-dropdown-hover'] = 'w3-dropdown-hover';
            }
        }
    }
    return $sorted_menu_items;
}
add_filter( 'wp_nav_menu_objects', 'menu_set_dropdown', 10, 2 );

然后,您可以调用header.php中的菜单函数

代码语言:javascript
复制
wp_nav_menu( array(
    'theme_location'  => 'primary',
    'items_wrap'      => '<ul id="%1$s" class="w3-bar w3-bar-item %2$s">%3$s</ul>',
    'add_items_class' => '',
    'container'       => false
) );

它将是类似如下的输出

代码语言:javascript
复制
<ul id="menu-primary-menu" class="w3-bar w3-bar-item menu">
    <li id="menu-item-139" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-has-children w3-dropdown-hover menu-item-139 w3-bar-item">
        <a href="http://example.org/w3css/" aria-current="page" class="w3-button">Home</a>
        <ul class="sub-menu w3-dropdown-content w3-bar-block w3-card">
            <li id="menu-item-143" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-143 w3-bar-item">
                <a href="http://example.org/about/" class="w3-button">About</a>
            </li>
        </ul>
    </li>
    <li id="menu-item-140" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-140 w3-bar-item">
        <a href="http://example.org/about/" class="w3-button">About</a>
    </li>
    <li id="menu-item-141" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-141 w3-bar-item">
        <a href="http://example.org/blog/" class="w3-button">Blog</a>
    </li>
    <li id="menu-item-142" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-142 w3-bar-item">
        <a href="http://example.org/contact/" class="w3-button">Contact</a>
    </li>
</ul>

顺便说一句,您可以从W3CSS Starter模板复制许多功能:https://github.com/webarthur/w3css-starter

我希望我能帮上忙。=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39843346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档