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?
Zuerst nehme ich an, dass Sie benutzerdefinierte Navigationsmenüs richtig konfiguriert haben:
register_nav_menus()
in functions.php
, um theme_location
Werte zu definieren wp_nav_menu()
ruft die Vorlage auf, wobei theme_location
im Array args aufgerufen wird 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.