0

我有这个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在菜单中的所有 my 上设置了一个类。问题是:它在所有锚上设置了相同的类。我想要每个锚点不同的类。那可能吗?如果是这样,我该怎么做?

编辑->我想要这样:

<li><a class="icon-bird"></a></li>
<li><a class="icon-book"></a></li>
<li><a class="icon-red"></a></li>
4

2 回答 2

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);
于 2013-07-29T14:59:35.773 回答
0

我使用了上面的代码并进行了一些更改,这对我有用,您可以尝试以下步骤:

您可以按照以下步骤操作:

第 1 步:在 wp-admin 中,转到 Appearance -> Menus,将类放在“CSS Classes (optional)”的菜单项上。如果在菜单项中看不到“CSS Classes (optional)”,那么屏幕右上角有“Screen Option”,“Show advanced menu properties”下有“CSS Class”选项

第 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);

希望上面的代码对你有用,如果它仍然不起作用,请告诉我。

于 2015-03-29T22:22:16.690 回答