我不是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 的新手