向不带插件的菜单项添加自定义属性

时间:2013-05-25 作者:Jake Lisby

我正试图找出在不使用插件的情况下添加自定义菜单属性的最佳方法。我有一个使用自定义主题的站点,需要确保这是在主题激活时设置的,而不是需要设置插件。

有没有可以插入的函数?

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

滤器nav_menu_link_attributes:

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

function wpse_100726_extra_atts( $atts, $item, $args )
{
    // inspect $item, then …
    $atts[\'custom\'] = \'some value\';
    return $atts;
}
这适用于WordPress<;3.6:

add_filter( \'walker_nav_menu_start_el\', function( $item ) {

    $parts = explode( \'>\', $item );
    $out   = array ();

    foreach ( $parts as $i => $part )
    {
        if ( 0 === strpos( $part, \'<a \' ) ) // a start
            $out[ $i ] = $part . \' data-foo="bar"\';
        else
            $out[ $i ] = $part;
    }

    return join( \'>\', $out );
});

SO网友:pagol

这是很好的工作。但我想多加一点,但还不知道怎么做。

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

function wpse_100726_extra_atts( $atts, $item, $args )
{
    // inspect $item, then …
    $atts[\'data-hover\'] = \'some value\';
    return $atts;
}
我想对菜单项名称进行一些值更改。ex公司data-hover="contact us"

结束

相关推荐

Sub Navigation in Sidebar

测试地点:http://www.indysouthportdental.com.php5-1.ord1-1.websitetestlink.com我只想在查看父级中的任何页面时,在侧边栏中显示父级的子级。例如,《口腔健康》有10个子页面。其中一些儿童(例如治疗)页面有儿童页面(口腔健康的孙子)。即使我在孙子页面上,我仍然希望列出父级的唯一子页面。这是我正在使用的代码<?php if($post->post_parent) $children = wp_list_pages(\"