J'essaie d'avoir le lien de menu par défaut lorsque j'utilise mes menus personnalisés, et dans mon document functions.php
, j'ai ceci:
function home_page_menu_args( $args ) {
$args['show_home'] = true;
return $args;
}
add_filter( 'wp_page_menu_args', 'home_page_menu_args' );
Le problème est que, dans les options de menu personnalisées> pages, j'ai ceci: "Aucun élément". Donc je ne sais pas ce qui se passe, cela fonctionnait dans d'autres sites Web mais pas dans celui-ci, une idée?
Premièrement, je suppose que vous avez des menus de navigation personnalisés correctement configurés:
register_nav_menus()
in functions.php
, pour définir les valeurs theme_location
wp_nav_menu()
appelle dans le modèle, avec theme_location
appelé dans le tableau argsSi c'est le cas, le problème est que vous utilisez le mauvais filtre. Le filtre wp_page_menu_args
est appliqué à l'intérieur de wp_page_menu()
, qui est le rappel par défaut. pour wp_nav_menu()
quand aucun menu n'est assigné au theme_location
indiqué.
La sortie de wp_nav_menu()
applique son propre filtre: wp_nav_menu_args
. Il vous faut donc également associer votre rappel à ce filtre:
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' );
De cette façon, l'argument show_home
retournera la valeur true pour la sortie wp_page_menu()
et pour la sortie wp_nav_menu()
.
Soyez prudent avec wp_nav_menu()
, cependant; si l'utilisateur ajoute un lien d'accueil au menu personnalisé, alors deux liens de page d'accueil seront affichés dans le menu affiché.