如何将文本添加到单个导航菜单项?

时间:2013-06-09 作者:JMac

我正在研究一个主题,该主题要求最终用户使用我创建的自定义管理面板指定当前演出季节,即“2013/2014”、“2014/2015”等,我可以使用get_option(\'current_season\');

在我的自定义导航菜单上,我有一个标题为“季节”的页面,需要在其中插入上述字段,以便显示“2013/2014季节”,而不仅仅是“季节”。

我看过的walker教程似乎只展示了向菜单项添加类的示例,但我需要向一个菜单项添加特定文本。我怎样才能做到这一点?

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

您可以尝试wp_nav_menu_objects 滤器这似乎可行,但不确定它可能有什么其他副作用,您需要彻底测试。

function wpa_filter_nav_menu_objects( $items ){
    foreach( $items as $item ){
        if( \'Season\' == $item->title ){
            $item->title = get_option(\'current_season\') . \' Season\';
        }
    }
    return $items;
}
add_filter( \'wp_nav_menu_objects\', \'wpa_filter_nav_menu_objects\' );

SO网友:Rarst

大多数单个菜单项标记生成发生在Walker_Nav_Menu->start_el()

标题在这部分代码中经过筛选:

$item_output .= $args->link_before . apply_filters( \'the_title\', $item->title, $item->ID ) . $args->link_after;
所以the_title 过滤器应允许您修改它。然而,精确实现有些困难,这取决于您的具体目标,因为WP在中使用相同的过滤器get_the_title() 一般标题功能。

结束

相关推荐

Sub Navigation in Sidebar

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