web-dev-qa-db-ja.com

タグの編集画面に分類の説明を表示しますか?

Taxonomy description

私のカスタム分類法のそれぞれの適切な使用方法を説明するタグの編集画面に、役に立つテキストを追加したいと思います。

私は コーデックスで 説明はカスタム分類法に追加できることを示します - 用語ではなく、分類法自体に。それは私のヘルプテキストを置くのに最適な場所でしょう、そして私は持っています、しかし私はそれがまったくレンダリングされている場所がわかりません。

コーデックスから:

description(string)(オプション)分類法の説明を含めます。デフォルト: ""

私のカスタム分類関数の$ args配列では、

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

分類法の説明を表示するために使用できるedit-tags用のフック、またはここにヘルプテキストを挿入するための別の解決策(ACF)がありますか。

1
Slam

丸で囲まれた場所のコードはwp-admin/edit-tags.php:295にあります。

何もないことに気づくでしょう。フックもフィルタもありません。あなたはそれをきれいに叩くのが不運です。

幸いなことに、あなたはまだjQueryでそれを追加するためにダクトテープメソッドをすることができます。次のようにして、丸で囲まれた場所にテキストを動的に配置できます。

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
        }
    }
});

更新

@Slamを指摘したように、_pre_add_formおよび_term_edit_form_topフックを使用して、自分がフォローしている領域の周囲にを表示できます。これを行うには、すべての分類法を見直して、以下のように動的にアクションを実行します。

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>";
    }
}

_pre_add_formは左側の列で起動しますが - h1タイトルのすぐ下ではありません。

1
David Sword

@ David Swordのコメントへ:(ラベル内の)標準の分類法の説明を使用したい場合は、次のコードを使用してください。

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