Si vous voulez une page d’administration personnalisée pour une taxonomie, vous pouvez définir 'show_ui' => false
lorsque vous l’enregistrez pour supprimer la page d’administration par défaut, puis créer une nouvelle page d’administrateur pour la remplacer.
Cependant, edit-tags.php?taxonomy=taxonomy-slug
vous amène toujours à la page d'administration par défaut "masquée". Est-il possible de le diriger plutôt vers la page d'administration personnalisée? Ou sinon, existe-t-il une autre méthode que celle de contourner ce problème?
Je ne sais pas pourquoi je n'y ai pas pensé plus tôt. Je suppose que j'espérais trouver un moyen de "détourner" la page par défaut pour afficher autre chose ... En tout cas, en suivant ma méthode d'origine:
Si vous souhaitez une page d’administration personnalisée pour une taxonomie, vous pouvez définir 'show_ui' => false lorsque vous l’enregistrez pour supprimer la page d’administration par défaut, puis créez une nouvelle page d’administrateur pour la remplacer.
Vous pouvez contourner le problème de edit-tags.php?taxonomy=taxonomy-slug
en vous dirigeant vers la page de taxonomie cachée, en redirigeant simplement l'utilisateur vers votre page, en utilisant wp_redirect
:
add_action('load-edit-tags.php','myprefix_redirect_to_custompage');
function myprefix_redirect_to_custompage(){
$screen = get_current_screen();
if($screen->id == 'edit-mytax'){
$url = admin_url('edit.php?page=mypage');
wp_redirect($url);
exit;
}
}
En supposant que mytax
est le nom de la taxonomie. $url
devrait être l'URL de la page personnalisée remplaçant la page de taxonomie par défaut.
Faites une simple redirection:
if ( CONDITION_SEE_BELOW )
{
wp_redirect( admin_url( 'edit.php?post_type=YOUR_CPT', is_ssl() ? 'https' : 'http' ); );
// faster then die();
exit;
}
J'ai essayé de démonter les pages entières et j'ai écrit un tableau pour les résumer et obtenir des indications définitives sur la situation actuelle de cette pâte .
Pour les lister ici:
global $menu
→pas possibleglobal $submenu
→slugedit-tags.php?taxonomy=YOUR_TAX
global $current_screen
→idedit-YOUR_TAX
1)global $self
→ edit-tags.php
1)2)$GLOBALS['$_SERVER']['REQUEST_URI']
→ edit-tags.php?taxonomy=YOUR_TAX
1)1) Assurez-vous également de vérifier…
if ( edit.php?post_type=YOUR_CPT === $GLOBALS['current_screen']['parent_file'] )
… Si votre impôt est enregistré ailleurs aussi.
2) Cela n’aidera que si a) vous n’avez pas d’autre impôt enregistré ou b) si vous voulez tous les rediriger.