在wp_NAV_MENU中添加要锚定的自定义类

时间:2014-07-29 作者:Hector

我想向中的锚点添加自定义类wp_nav_menu 输出。

例如,默认值为:

<li id="menu-item" class="menu-item menu-item-type-custom">
    <a href="http://example.com">example</a>
</li>
我想要这个:

<li id="menu-item" class="menu-item menu-item-type-custom ">
    <a href="http://example.com" class="class">example</a>
</li>

4 个回复
最合适的回答,由SO网友:cjbj 整理而成

您可以使用nav_menu_link_attributes 滤器

add_filter( \'nav_menu_link_attributes\', \'wpse156165_menu_add_class\', 10, 3 );

function wpse156165_menu_add_class( $atts, $item, $args ) {
    $class = \'class\'; // or something based on $item
    $atts[\'class\'] = $class;
    return $atts;
}

SO网友:Rarst

您可以通过admin中的接口本机添加类。打开Screen Options (屏幕右上方)并检查CSS Classes. 我不记得类是否应用于链接本身,但您总是可以使用CSS将链接作为容器内的目标链接(.class a).

SO网友:Mohammad Ayoub Khan

我有一个将类添加到锚定标记的解决方案。

1: 步骤:在函数中添加此项。php

function add_additional_class_on_a($classes, $item, $args)
{
    if (isset($args->add_a_class)) {
        $classes[\'class\'] = $args->add_a_class;
    }
    return $classes;
}

add_filter(\'nav_menu_link_attributes\', \'add_additional_class_on_a\', 1, 3);
2: 然后在你的主题中这样使用它

<?php
        // Show Menu here
        wp_nav_menu(array(
            \'theme_location\' => \'my-footer-menu\',
            \'menu_class\'      => \'footer-top list-unstyled\',
            \'add_a_class\'     => \'box-link text-dark\',
        ));
?>

SO网友:kunal

add_filter( \'nav_menu_link_attributes\', \'wpse156165_menu_add_class\', 10, 3 );

function wpse156165_menu_add_class( $classes, $item, $args ) {
    if(isset($args->add_link_class)) {
        $classes[\'class\'] = $args->add_link_class;
    }
    return $classes;
}
现在您可以使用add_link_class 作为菜单中的数组。

结束

相关推荐

Adding two submenus to a menu

我有一个包含2个子菜单(查看和管理)的菜单(ads)。我希望两个菜单项都重定向到不同的页面,但我的第一个子菜单(视图)指向主菜单页面。