web-dev-qa-db-fra.com

Afficher la description de la taxonomie sur l'écran d'édition-tags?

Taxonomy description

Je souhaite ajouter un texte utile à l'écran edit-tags décrivant l'utilisation appropriée de chacune de mes taxonomies personnalisées.

Je vois dans le Codex qu'une description peut être ajoutée à une taxonomie personnalisée - pas à un terme, mais à la taxonomie elle-même. Ce serait un endroit idéal pour mettre mon texte d'aide, et j'ai, mais je ne vois pas où c'est rendu du tout.

Du Codex:

description (chaîne) (facultatif) Inclut une description de la taxonomie. Défaut: ""

Dans le tableau $ args de ma fonction de taxonomie personnalisée:

$args = array( 'description' => 'Some helpful text!' [other args...] );

Existe-t-il un crochet pour les balises de montage que je peux utiliser pour afficher la description de la taxonomie, ou une autre solution (ACF peut-être) pour insérer du texte d'aide ici?

1
Slam

Le code pour l'endroit où vous avez encerclé peut être trouvé dans wp-admin/edit-tags.php:295

Vous remarquerez qu'il n'y a rien là-bas. Pas de crochets, pas de filtres. Vous n'avez pas la chance de puiser dans cela proprement.

Heureusement, vous pouvez utiliser une méthode de ruban adhésif en toile pour l'ajouter à jQuery. Vous pouvez placer dynamiquement du texte autour duquel vous avez entouré en faisant quelque chose comme:

add_action( 'admin_head', function(){
    global $wp_query;
    $screen = get_current_screen();
    if ($screen->base == 'edit-tags' || $screen->base == 'term') {
        $mytax = get_taxonomy($screen->taxonomy);
        if (!empty($mytax->description)) {
            ?>
            <script>
            jQuery(window).load(function() {
                jQuery('.wrap h1').after("<p class='description'><?php echo $mytax->description ?></p>");
            });
            </script>
            <?php
        }
    }
});

METTRE À JOUR

Comme vous l'avez fait remarquer avec @Slam, vous pouvez utiliser les points d'ancrage _pre_add_form et _term_edit_form_top pour afficher le dans la zone que vous recherchez. Pour ce faire, vous pouvez parcourir toutes les taxonomies et exécuter les actions de manière dynamique de la manière suivante:

add_action( 'admin_init', function(){
    $taxonomies = get_taxonomies(); 
    foreach ( $taxonomies as $taxonomy ) {
        add_action("{$taxonomy}_pre_add_form", 'my_plugin_tax_description');
        add_action("{$taxonomy}_term_edit_form_top", 'my_plugin_tax_description');
    }
});

function my_plugin_tax_description() {
    global $wp_query;
    $screen = get_current_screen();
    if ($screen->base == 'edit-tags' || $screen->base == 'term') {
        $mytax = get_taxonomy($screen->taxonomy);
        if (!empty($mytax->description))
            echo "<p class='description'>{$mytax->description}</p>";
    }
}

Bien que _pre_add_form soit déclenché dans la colonne de gauche - pas directement sous le titre h1.

1
David Sword

Aux commentaires de @David Sword: Si vous souhaitez utiliser la description de taxonomie standard (dans les étiquettes), utilisez ce code:

function my_plugin_tax_description() {
    global $wp_query;
    $screen = get_current_screen();
    if ($screen->base == 'edit-tags' || $screen->base == 'term') {
        $mytax = get_taxonomy($screen->taxonomy);
        if (!empty($mytax->labels->description))
            echo "<p class='description'>{$mytax->labels->description}</p>";
    }
}
0
Skarbona