如何将独特的类添加到Wordpress菜单锚点?

时间:2013-07-29 14:54:52

标签: php wordpress wordpress-theming

我有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>

2 个答案:

答案 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);

希望上面的代码适合你,让我知道它是否仍然无效。