Home Benutzerdefinierte Menüverknüpfung funktioniert nicht

Ich versuche, die Menüverknüpfung standardmäßig zu verwenden, wenn ich meine benutzerdefinierten Menüs verwende, und in meinem functions.php Dokument habe ich folgendes:

 function home_page_menu_args( $args ) { $args['show_home'] = true; return $args; } add_filter( 'wp_page_menu_args', 'home_page_menu_args' ); 

Die Sache ist, in den benutzerdefinierten Menüoptionen> Seiten habe ich das: “Keine Elemente.” Also nicht sicher, was los ist, es funktionierte auf anderen Websites, aber nicht in diesem, keine Ahnung?

Solutions Collecting From Web of "Home Benutzerdefinierte Menüverknüpfung funktioniert nicht"

Zuerst nehme ich an, dass Sie benutzerdefinierte Navigationsmenüs richtig konfiguriert haben:

  1. register_nav_menus() in functions.php , um theme_location Werte zu definieren
  2. wp_nav_menu() ruft die Vorlage auf, wobei theme_location im Array args aufgerufen wird
  3. Benutzerdefinierte Navigationsmenüs, die im Admin definiert sind
  4. Benutzerdefinierte Navigationsmenüs, die den Motivpositionen zugewiesen sind

Wenn dies der Fall ist, besteht das Problem darin, dass Sie den falschen Filter verwenden. Der Filter wp_page_menu_args wird innerhalb von wp_page_menu() angewendet. wp_page_menu() ist der Standard-Callback für wp_nav_menu() wenn dem angegebenen theme_location kein Menü zugewiesen ist.

Die Ausgabe von wp_nav_menu() wendet einen eigenen Filter an: wp_nav_menu_args . Also müssen Sie Ihren callback auch in diesen Filter einbinden:

 function home_page_menu_args( $args ) { $args['show_home'] = true; return $args; } add_filter( 'wp_page_menu_args', 'home_page_menu_args' ); // Hook into wp_nav_menu add_filter( 'wp_nav_menu_args', 'home_page_menu_args' ); 

Auf diese Weise gibt das show_home für die Ausgabe wp_page_menu() und für die Ausgabe wp_nav_menu() den show_home true zurück.

Sei vorsichtig mit wp_nav_menu() , obwohl; Wenn der Benutzer dem benutzerdefinierten Menü einen Home-Link hinzufügt, werden im gerenderten Menü zwei Homepage-Links angezeigt.