Dank einiger Hilfe hier habe ich es geschafft, meinem Hauptmenü ein benutzerdefiniertes Suchfeld hinzuzufügen ... indem ich dieses zur functions.php meines Themas hinzufügte
add_filter('wp_nav_menu_items','search_box_function');
function search_box_function ($nav){
return $nav."<li class='menu-header-search'><form action='http://example.com/' id='searchform' method='get'><input type='text' name='s' id='s' placeholder='Search'></form></li>";
}
Allerdings habe ich jetzt ein weiteres Menü hinzugefügt, um es in die Fußzeile einzufügen, aber das Suchfeld wird auch diesem hinzugefügt. Wie füge ich das Suchfeld nur dem Hauptmenü hinzu?
Mein Code zum Registrieren der Menüs lautet:
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'twentyten' ),
'secondary'=>__('Secondary Menu', 'twentyten' ),
) );
..und der Code zum Anzeigen des sekundären Menüs lautet:
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) );
10, 2
im code?10
ist die Priorität (zehn ist die Standardeinstellung) und2
die Anzahl der Argumente, die von der Funktion, die wir mit dem Filter verknüpfen, akzeptiert werden.Eine alternative Methode hierfür ist das Hinzufügen des Menü-Slugs zum Filter wp_nav_menu_items.
Angenommen, Sie haben ein Menü mit dem Namen Header und möchten, dass in diesem Menü (unabhängig davon, ob es an einen Themenort angehängt ist oder nicht) immer ein Suchfeld angezeigt wird. Sie können dies tun, indem Sie den Menü-Slug in diesem Fall
header
zum Filter hinzufügen .Der neue Filter würde wie folgt aussehen:
Beachten Sie den
header
Teil des neuen Filters. Dies teilt WordPress mit, zu welchem Menü die Funktion hinzugefügt werden soll.Dies ist nur ein anderer Weg, um Ihr aktuelles Problem anzugehen.
quelle