web-dev-qa-db-fra.com

Exclure une page avec un certain nom de wp_page_menu

Un de mes clients possède un WP réseau multisite de sites qui utilisent tous le même modèle. Ce modèle utilise wp_page_menu. Je viens d'ajouter une version mobile du modèle en utilisant un certain plugin. Il utilisera les mêmes pages que la version de bureau du site Web, mais le client a demandé une page de destination différente.

Le problème est que si je crée une nouvelle page pour faciliter cette page d'arrivée, elle apparaîtra dans le code généré par wp_page_menu. Étant donné que tous les sites de ce réseau utilisent le même modèle et que la page aura des identifiants de page différents sur différents sites, je ne peux pas l'exclure manuellement dans la fonction wp_page_menu.

Je pensais que si je pouvais exclure le poste par titre ou nom de catégorie plutôt que par ID, cela pourrait fonctionner. Mais je ne sais pas comment faire ça. S'il vous plaît aider?

2
user5028

Que diriez-vous d'utiliser get_page_by_path(), puis d'utiliser l'ID de l'objet renvoyé dans un filtre d'exclusion?

add_filter('wp_page_menu_args','my_nav_exclude_pages');

function my_nav_exclude_pages( $args = array() ) {
  $homepage = get_page_by_path('my-page-slug');
  $args['exclude'] = join( ',', array( $args['exclude'], $homepage->ID ) ); 

  return $args;
}
1
Dougal Campbell