有没有一个钩子可以让导航菜单项链接以编程方式添加自定义的css?

时间:2022-01-29 作者:hnnnng

我知道有这个nav_menu_css_class 钩子将自定义类添加到nav中的列表项,但是否有类似的钩子将自定义类添加到nav中的所有链接项?我希望nav中的所有链接都具有此类:

<a class="nav-link" href="#whatever">Sample page</a>

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

是的,有,钩子是nav_menu_link_attributes:

apply_filters( \'nav_menu_link_attributes\', array $atts, WP_Post $item, stdClass $args, int $depth )

过滤应用于菜单项的锚元素的HTML属性。

例如,这将添加nav-link 类到<a> 仅当主题位置($args->theme_location) 正是my-location:

add_filter( \'nav_menu_link_attributes\', \'my_nav_menu_link_attributes\', 10, 3 );
function my_nav_menu_link_attributes( $atts, $item, $args ) {
    if ( \'my-location\' === $args->theme_location ) {
        // Get existing classes, if any.
        $class = $atts[\'class\'] ?? \'\';

        // Now add your custom class(es).
        $atts[\'class\'] = "$class nav-link";
    }

    return $atts;
}

相关推荐

Gutenberg通过wp.hooks.addFilter修改核心分类面板元素

我已经研究过修改现有的编辑器元素……但几乎没有。但我确实在Github得到了一个很好的回复,指出了这一点:https://github.com/WordPress/gutenberg/tree/master/packages/editor/src/components/post-taxonomies#custom-taxonomy-selector显然,分类小组可以通过wp.hooks.addFilter. 这是一个很好的开始!我已经能够使用该代码片段模拟一些虚拟代码,用Dashicon替换分类法面板。(