无法将额外元素添加到主导航(Wp_NAV_MENU_ITEMS)

时间:2014-01-13 作者:Eric Mitjans

我正在尝试让作者列表自动显示在主navi上(无需在创建时手动逐个添加)。

到目前为止,我在函数中添加了这个。php,但运气不佳:

function wps_nav_authors ( $items, $args ) {
if ( $args->theme_location == \'Primary\') {
$items .= \'<li><a href="#">Authors</a><ul class="sub-menu"><li>\' . wp_list_authors(\'show_fullname=1&optioncount=0&exclude_admin=0&orderby=post_count&order=DESC&number=8&echo=0\') . \'</li></ul></li>\';
}
return $items;
}
add_filter( \'wp_nav_menu_items\', \'wps_nav_authors\', 10, 2 );
我也尝试过使用更简单的代码,只是想看看是否能够将随机li元素添加到菜单中,但也没有结果。我尝试了:

add_filter( \'wp_nav_menu_items\', \'your_custom_menu_item\', 10, 2 );
function your_custom_menu_item ( $items, $args ) {
if ($args->theme_location == \'Primary\') {
$items .= \'<li>Show whatever</li>\';
}
return $items;
}
此外,我的主菜单被称为主菜单。

有什么想法吗?谢谢

1 个回复
SO网友:Eric Mitjans

只是出于运气,我尝试将代码添加到nav。php而不是自定义。php(它包含root.io主题中的functions.php),它的工作非常有魅力。

此外,由于基于Boostrap 3,我不得不添加一些类和属性以使下拉列表正常工作。如果其他人可能需要,这里是最后的代码:

function add_last_nav_item($items, $args) {
if (!is_admin() && $args->theme_location == \'primary_navigation\') {
$items .= \'<li><a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="#">Authors <b class="caret"></b></a><ul class="dropdown-menu"><li>\' . wp_list_authors(\'show_fullname=1&optioncount=0&exclude_admin=0&orderby=post_count&order=DESC&number=8&echo=0\') . \'</li></ul></li>\';
}
return $items;
}
add_filter( \'wp_nav_menu_items\', \'add_last_nav_item\', 10, 2 );

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。