J'ai un type de publication personnalisé, Jobs, avec 3 taxonomies en dessous dans le menu Admin.
L'une des taxonomies est le statut, qui est soit actif, soit fermé. Je veux un élément de menu sous Travaux pour les travaux actifs. Je l'ai créé avec ce code
add_submenu_page(
'edit.php?post_type=jobs',
'Active Jobs',
'Active Jobs',
'manage_options',
'edit.php?post_type=jobs&jobstatus=67'
);
Cela fonctionne parfaitement, sauf que l'élément de menu Travaux reste en surbrillance lorsque l'option de menu Travaux actifs est active. Voir capture d'écran
J'ai lu dans cet article la classe actuelle dans le menu admin en utilisant add_submenu_page () pour ne pas inclure le slug parent comme premier paramètre. Je ne sais pas comment faire apparaître le sous-menu dans la bonne section de navigation lorsque je supprime le slug du nom de fichier.
À ce stade, je n'utilise pas de fonction de rappel, j'exécute simplement la même URL que l'option de sous-menu Travaux par défaut, sauf avec les paramètres de requête qui filtrent les messages affichés. Si le déplacer dans une fonction de rappel résout le problème, je peux le faire. Mais je ne sais pas ce qui devrait aller dans la fonction de rappel. Je veux afficher la page d'édition de type de publication personnalisée standard, juste avec un filtre de taxonomie en place. merci pour l'aide
la source
'edit.php?&post_type=jobs&jobstatus=67'
... cela&
ne devrait pas être le premier , après le?
..Réponses:
J'ai fait ce travail en utilisant les menus Posts et le statut Draft. Il s'appuie sur jQuery pour modifier les classes d'éléments de liste. Adaptez-vous à votre type de publication et à vos URL.
Voici le résultat:
la source
Voici une solution que je viens de trouver qui n'utilise pas jQuery:
Il y a un filtre
parent_file
danswp-admin/menu-header.php
lequel passe juste avant la sortie du menu. Le commentaire en ligne dit:C'est juste un filtre sur la variable globale
$parent_file
et je ne sais pas ce qu'il fait, mais nous utiliserons ce filtre pour modifier la variable globale à la$submenu_file
place, ce qui définit le sous-menu en surbrillance. Ce sera donc la solution dans votre cas:Vous pouvez l'adapter à n'importe quel format d'URL. Par exemple, j'utilise le format
admin.php?page=my_plugin_slug&action=myaction
des sous-menus de mes plugins, donc je l'ai utilisé pour mettre en surbrillance mes sous-menus:PS: J'ai également essayé l'action
admin_menu
à définir$submenu_file
, et cela a fonctionné dans mon cas (page de plugin personnalisé / slug) mais pas pour lesedit.php
sous-menus (votre cas). J'ai donc cherché une autre action / filtre qui s'exécute plus tard et c'était le filtreparent_file
.la source
j'ai découvert que vous devez également utiliser des entités html pour votre lien. puisque tu as
vous pouvez essayer de changer l'esperluette en son équivalent d'entité html
vous auriez donc
cela a fonctionné pour moi ... j'ai également testé la chaîne de sortie pour le sous-menu et le menu parent et vérifié si elles correspondent. cela peut être une petite fonction utilitaire pour vérifier ce genre de choses
la source