我在wordpress主菜单的顶部添加了一个搜索框和一个“加入电子邮件列表”按钮。搜索框按预期显示,但电子邮件按钮显示在菜单的UL中 - 我可以在完整菜单中通过定位进行补偿,但在响应式移动菜单出现时它会完全隐藏按钮。不确定如何正确地将它从UL中取出。
我发现如果您需要将电子邮件按钮作为外部文件,它将显示在UL之外 - 但这也会导致在非移动版本的主菜单之前显示“1”。令人费解...
这是我的代码,显示了字符串方法和require方法(已注释掉)。
add_filter('wp_nav_menu_items','add_search_box_to_menu', 10, 2);
function add_search_box_to_menu( $items, $args ) {
if( $args->theme_location == 'main-nav-menu' ) {
$search_form = get_search_form();
// $email_button = require_once('emailbutton.php');
$email_button = '<button id="btn_emaillist">Join Our Email List</button>';
$items = $search_form . $email_button . $items;
}
return $items;
}
你可以在http://example.wdev05.com/看到这个。如何使按钮显示在UL之外,以便在桌面和桌面上都可以看到它。移动,没有任何奇怪的副作用?
答案 0 :(得分:0)
wp_nav_menu_items
将在UL中添加内容。
使用wp_nav_menu
过滤器在ul
function _wp_nav_m_filter( $nav, $args ) {
if( $args->theme_location == 'main-nav-menu' ) {
$search_form = get_search_form( false ); // do not echo the form
$search_form .= '<button id="btn_emaillist">Join Our Email List</button>';
return $search_form . $nav;
}
return $nav;
}
add_filter('wp_nav_menu', '_wp_nav_m_filter', 10, 2);
结帐https://core.trac.wordpress.org/browser/tags/4.5/src/wp-includes/nav-menu-template.php#L451