Eingabeart Suche im Menü

Hi wie ein Noob möchte ich folgendes erreichen. Ich möchte ein Suchfeld in ein registriertes Menü bringen. Deshalb lese ich ein wpbeginner.com-Tutorial, das im Grunde einem Ansatz mit einem Filter-Hook folgt.

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 == 'primary' ){ return $items.""; } return $items; } 

Das scheint der erste Filterhaken in meinem Leben zu werden. Um eine html-Ausgabe zu erreichen, die der “search-widget” -Ausgabe ähnelt, komme ich zu dieser Lösung und in meiner Einsteigermeinung scheint es ein Beispiel für schlechteres Coding zu sein.

 function add_search_box_to_menu($items, $args) { if ($args->theme_location == 'menu-1') { return $items . "
  • " . "
    " . "" . "" . "
  • "; } return $items; } add_filter('wp_nav_menu_items', 'add_search_box_to_menu', 10, 2);

    Obwohl es scheint zu arbeiten …. Hier sind meine Fragen:

    Als (PHP, WP & Englisch) noob frage ich mich, ob es eine aufrechterhaltbare oder klarere Art gibt, mein Ziel zu erreichen.

    Oder … bin ich nur selbst irritiert von meinen geringen php Fähigkeiten? Oder sieht es für Sie wie normaler Code aus?

    Wo ist ein guter Platz für einen solchen Filterhaken (eigentlich ist er in meiner function.php direkt unter der Registrierung der Navigation platziert)?

    Vielen Dank im Voraus

    Solutions Collecting From Web of "Eingabeart Suche im Menü"

    Das ist in Ordnung, aber wenn Sie wollen, dass die Dinge “sauberer” aussehen und einfacher zu modifizieren sind, können Sie stattdessen eine neue Datei menu-search.php erstellen und dort Ihren HTML-Code hinzufügen und dann Ihre function ein wenig anpassen Ihre functionen)

     function myprefix_add_search_box_to_menu($items, $args) { if ( $args->theme_location == 'menu-1' ) { ob_start(); get_template_part( 'menu-search' ); $items .= ob_get_clean(); } return $items; 

    } add_filter (‘wp_nav_menu_items’, ‘meinprefix_add_search_box_to_menu’, 10, 2);