我正在为我的网站创建菜单。静态数据如下所示:
<nav>
<ul id="menu">
<li class="item_1"><a href="#">Item 1</a></li>
<li class="item_2"><a href="#">Item 2</a></li>
<li class="item_3"><a href="#">Item 3</a></li>
<li class="item_4"><a href="#">Item 4</a></li>
<li class="item_5"><a href="#">Item 5</a></li>
<li class="item_6"><a href="#">Item 6</a></li>
<li class="item_7"><a href="#">Item 7</a></li>
<li class="item_8"><a href="#">Item 8</a></li>
</ul>
我已经能够理解如何定制
<ul>
标签,以摆脱自动
<div>
标签但是现在,我想定制
<li>
标记,以便能够分配不同的
class
通过CSS控制特定行为的名称。当我使用
wp_nav_menu()
输出如下:
<ul id="menu">
<li id="menu-item-111" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-111"><a href="http://mydomain.com/dummy/fashion/">Fashion</a></li>
<li id="menu-item-112" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-112"><a href="http://mydomain.comdummy/documentary/">Documentary</a></li>
<li id="menu-item-113" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-113"><a href="http://mydomain.com/dummy/events/">Events</a></li>
<li id="menu-item-114" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-114"><a href="http://mydomain.com/dummy/portraits/">Portraits</a></li>
</ul>
我想摆脱
id
在
<li>
标记并更改
class
以反映我要链接到的页面的名称。基本上,我想输出与本文中第一段代码相同的内容。
我之所以这样做,是因为我使用了由CSS控制的自定义图像,而不是纯文本。
这可能吗?我应该使用什么策略来克服这个问题?
SO网友:cweiske
设置<li>
分类至nav-link
, bootstrap 4.3需要它:
function add_menu_link_class($atts, $item, $args)
{
$atts[\'class\'] = \'nav-link\';
return $atts;
}
add_filter(\'nav_menu_link_attributes\', \'add_menu_link_class\', 1, 3);
您还可以取消设置
id
属性。
SO网友:Muhammad Mohibbullah
这是一种非常简单的呼叫方式li
类别和“;“任何类别”;易于更换。只需按照说明操作即可。
在导航区域使用此代码。
<?php
$consult_menu = wp_nav_menu(array(
\'theme_location\' => \'topmenu\',
\'menu_id\' => \'menu\',
\'menu_class\' => \'navbar-nav m-auto\',
\'echo\' => false
)
);
$consult_menu = str_replace(\'menu-item\', \'nav-item\', $consult_menu);
echo $consult_menu;
?>
然后在浏览器上检查代码。查找wp默认类,然后替换
str_replace(**"default_class_here"**,**"new_li_class_here"**,$consult_menu);
|
Note: $consult_menu这里是我的主题名称,你可以在这里使用任何名称。
SO网友:RPB1001
正如上一张海报所提到的,您可以通过菜单添加自己的类,并在屏幕选项中勾选CSS类。在walker中,您可以通过以下方式访问您在其中输入的内容:
$item_output .= \'<a\'. $attributes .\' class="\'. $item->classes[0].\'">\';
我甚至用它在菜单中添加了一些预先命名的图像-有点像薄片,但它可以工作。
<img src="theme/images/navigation/\'.$item->classes[0].\'" width="48" height="48">