私のカスタム分類法のそれぞれの適切な使用方法を説明するタグの編集画面に、役に立つテキストを追加したいと思います。
私は コーデックスで 説明はカスタム分類法に追加できることを示します - 用語ではなく、分類法自体に。それは私のヘルプテキストを置くのに最適な場所でしょう、そして私は持っています、しかし私はそれがまったくレンダリングされている場所がわかりません。
コーデックスから:
description(string)(オプション)分類法の説明を含めます。デフォルト: ""
私のカスタム分類関数の$ args配列では、
$args = array( 'description' => 'Some helpful text!' [other args...] );
分類法の説明を表示するために使用できるedit-tags用のフック、またはここにヘルプテキストを挿入するための別の解決策(ACF)がありますか。
丸で囲まれた場所のコードは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タイトルのすぐ下ではありません。
@ 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>";
}
}