2016-08-05 16 views
0

私は検索ボックスと "Join Email List"ボタンをワードプレスのメインメニューの上部に追加します。検索ボックスは期待どおりに表示されますが、電子メールボタンはメニューのUL内に表示されます。これはフルメニューでポジショニングで補うことができますが、応答可能なモバイルメニューが表示された時点でボタンは完全に非表示になります。それをULから適切に取り出す方法が不明です。wp_nav_menu_itemsを使用してワードプレスメニュー項目の位置を変更

電子メールボタンが外部ファイルとして必要な場合は、ULの外に表示されますが、NON-mobileバージョンのメインメニューの前にも「1」が表示されます。困惑...

私のコードは、文字列メソッドと必要なメソッドの両方が表示されています(コメントアウトされています)。

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

は実際には、require_onceを法と、それだけでChromeのモバイルレイアウトで表示されます... – supernaut

答えて

0

wp_nav_menu_itemsは、ULの中に内容を追加します。ないのFirefox、Safariの、またはエッジに - 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); 

外にコンテンツを挿入する

使用wp_nav_menuフィルタチェックアウトhttps://core.trac.wordpress.org/browser/tags/4.5/src/wp-includes/nav-menu-template.php#L451

+0

優秀...今私は知っている。ありがとうございました! – supernaut