wordpress附加类到ul和子菜单ul



我不是wordpress的专家,在其他帖子(或谷歌)中没有找到任何明确的解决方案来解决我的以下问题:

我创建了一个responsive通用php页面,该页面具有ul、li、子菜单ul和子菜单li的特定类,以适应我的responsived设计。

我正在将我的网站与wordpress集成,我想在主ul和子菜单ul中添加额外的css classess。主ul项的当前类为:每个ul项目中的当前类别是:

例如:

<ul id="menu-primary-menu-links" class="menu">
 <li class="menu-item li_1"><a href="web-development.php" >link1</a>
    <ul id="sub-menu">
       <li class="menu-item li_1"><a href="web-development.php" >link3</a>
       </li>
       <li class="menu-item li_1"><a href="web-development.php" >link4</a>
       </li>
    </ul>
 </li>
 <li class="menu-item li_1"><a href="web-development.php" >link2</a>
    <ul class="sub-menu">
       <li class="menu-item li_1"><a href="web-development.php" >link5</a>
       </li>
       <li class="menu-item li_1"><a href="web-development.php" >link6</a>
       </li>
    </ul>
 </li>
</ul>


我希望它是例如:

    <ul id="menu-primary-menu-links" class="menu nav-list">      { here I added **nav-list** class }
 <li class="menu-item li_1"><a href="web-development.php" >link1</a>
    <ul id="sub-menu block_one_col">      { here I added **block_one_col** class }
       <li class="menu-item li_1"><a href="web-development.php" >link3</a>
       </li>
       <li class="menu-item li_1"><a href="web-development.php" >link4</a>
       </li>
    </ul>
 </li>
 <li class="menu-item li_1"><a href="web-development.php" >link2</a>
    <ul class="sub-menu block_wide_ul">      { here I added **block_wide_ul** class }
       <li class="menu-item li_1"><a href="web-development.php" >link5</a>
       </li>
       <li class="menu-item li_1"><a href="web-development.php" >link6</a>
       </li>
    </ul>
 </li>
</ul>

我该怎么做?请指定我应该在哪里添加您提到的任何代码。

非常感谢大家

要为导航菜单的<ul>分配一个类,您需要在数组中为wp_nav_menu函数定义items_wrap值,如下所示:

<?php wp_nav_menu( array('menu' => '//Your Menu Name', 'container' => '', 'items_wrap' => '<ul  id="menu-primary-menu-links" class="menu nav-list">%3$s</ul>' )); ?>

您的header.php文件中已经有了上面的代码,可以在前端回显导航菜单,因此您可以简单地在数组中粘贴以下值:'items_wrap' => '<ul id="menu-primary-menu-links" class="menu nav-list">%3$s</ul>'

jQuery解决方案将不同的类添加到不同的子菜单<ul>的:

由于Wordpress只允许将一个类/id分配给子菜单,因此您需要使用jQuery将不同的类添加到不同的子菜单<ul>。这是示例代码:

$( ".menu-item:first-child ul" ).addClass( "block_one_col" );
$( ".menu-item:nth-child(2) ul" ).addClass( "block_wide_ul" );
.block_one_col li a {
  color: yellow;
  }
.block_wide_ul li a {
  color: red;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu-primary-menu-links" class="menu nav-list">
 <li class="menu-item li_1"><a href="web-development.php" >link1</a>
    <ul class="sub-menu"> 
       <li class="menu-item li_1"><a href="web-development.php" >link3</a>
       </li>
       <li class="menu-item li_1"><a href="web-development.php" >link4</a>
       </li>
    </ul>
 </li>
 <li class="menu-item li_1"><a href="web-development.php" >link2</a>
    <ul class="sub-menu">
       <li class="menu-item li_1"><a href="web-development.php" >link5</a>
       </li>
       <li class="menu-item li_1"><a href="web-development.php" >link6</a>
       </li>
    </ul>
 </li>
</ul>

要针对第三、第四等子菜单<ul>的,可以使用nth-child psuedo选择器,如下所示:

$( ".menu-item:nth-child(3) ul" ).addClass( "block_wide_ul_new" );
$( ".menu-item:nth-child(4) ul" ).addClass( "block_wide_ul_new_2" );
.
.
.
$( ".menu-item:nth-child(10) ul" ).addClass( "block_wide_ul_new_10" );

第一个Wordpress支持菜单通过钩子您可以通过在header.php中添加以下代码来钩子菜单:-

<nav class="nav-bar">
<?php wp_nav_menu(array( 'container_class'=>'main-nav','container'=>'nav')); ?>`
</nav>

现在你需要注册这个钩子,这样它就可以进入WordPress管理区了。在主题的function.php文件中添加以下代码(如果这个文件不存在,请创建它):-

<?php
if(function_exists('register_nav_menus')) {
register_nav_menus( array('primary'=>'Header Navigation'));
} ?>

现在,您要自定义的东西从这里开始现在你需要在style.css中使用以下代码自定义菜单的外观(我添加了我自己的样式,你可以在这里添加你的css并修改为):-

ol, ul {
list-style: none;
}
.nav-bar {
background-color:rgb(238, 107, 107);
height:40px;
box-shadow:2px 2px 0 blue;
}
.main-nav ul, .main-nav li{
display:inline;
}
.main-nav a {
padding: 0px 20px 0px 20px;
text-decoration:none;
line-height:40px;
display:block;
color:#fff;
font-family:sans-sarif;
}
.main-nav a:hover {
background-color:#F53F63;
}
.main-nav ul ul a {
width:135px;
line-height:35px;
padding:0px 20px;
display:block;
}
.main-nav ul li {
position:relative;
float:left;
}
.main-nav ul ul {
position:absolute;
top:-9999999px;
left:0;
opacity:0;
background:#B21434;
text-align:left;
box-shadow:2px 2px 0 blue;
}
.main-nav ul li:hover > ul {
position:absolute;
top:100%;
opacity:1;
}

请根据您的需要修改css现在,无论你从wordpress管理面板添加什么,都会显示在菜单中

请访问wordpress主题制作教程以获得深入的知识,我自己也是wordpress 的新手

最新更新