我有function
:
function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
// you can put your if statements in here (use item, depth and args in conditions)
$item_output = preg_replace('/<a /', '<a class="your-class" ', $item_output, 1);
return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
哪种方法正常,因为它在菜单中的所有anchors
上设置了一个类。问题是:它在所有锚点上设置相同的类。我想要每个锚不同的类。那可能吗?如果是这样,我该怎么做?
编辑 - &gt;我希望这样:
<li><a class="icon-bird"></a></li>
<li><a class="icon-book"></a></li>
<li><a class="icon-red"></a></li>
答案 0 :(得分:0)
假设$item
包含您的值(鸟,书,红等):
function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
$item_output = preg_replace('/<a /', '<a class="item-' . $item . '"', $item_output, 1);
return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
答案 1 :(得分:0)
我使用上面的代码进行了一些更改并且它对我起作用,您可以尝试以下步骤:
您可以按照以下步骤操作:
第1步:在wp-admin中,转到“外观” - &gt;菜单,将类放在菜单项上,#34; CSS类(可选)&#34;。 如果你看不到&#34; CSS类(可选)&#34;在菜单项中,然后有&#34;屏幕选项&#34;在屏幕的右上角,有选项&#34; CSS Class&#34;在&#34;显示高级菜单属性&#34; 。
第2步:在你们的文件夹/ function.php下添加以下代码:
function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
$class= $item->classes['0'];
$item_output = preg_replace('/<a /', '<a class="'.$class.'"', $item_output, 1);
return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
希望上面的代码适合你,让我知道它是否仍然无效。