web-dev-qa-db-fra.com

Page d'administration de taxonomie personnalisée

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?

2
Stephen Harris

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.

2
Stephen Harris

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:

  1. global $menupas possible
  2. global $submenuslugedit-tags.php?taxonomy=YOUR_TAX
  3. global $current_screenidedit-YOUR_TAX 1)
  4. global $selfedit-tags.php 1)2)
  5. $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.

1
kaiser