是否在编辑标记屏幕上显示分类说明?

时间:2018-01-02 作者:Slam

Taxonomy description

我想在编辑标签屏幕中添加一些有用的文本,描述如何正确使用我的每个自定义分类法。

我明白了in the Codex 说明可以添加到自定义分类法中—不是添加到术语,而是添加到分类法本身。这将是放置我的帮助文本的完美位置,我已经这样做了,但我根本看不到它呈现在哪里。

抄本:

description (字符串)(可选)包括分类的描述。默认值:“

在自定义分类功能的$args数组中:

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

是否有一个用于编辑标记的挂钩,可以用来显示分类法的描述,或者有另一个用于在此处插入帮助文本的解决方案(可能是ACF)?

2 个回复
最合适的回答,由SO网友:David Sword 整理而成

您所圈出的代码可以在中找到wp-admin/edit-tags.php:295

你会注意到那里什么都没有。没有挂钩,没有过滤器。你干净利落地利用了它,真倒霉。

幸运的是,您可以使用duct tape方法将其添加到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标题的正下方。

SO网友:Skarbona

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

结束

相关推荐

Custom TaxonomyTemplate

我创建了一个自定义分类品牌,并在各种帖子中添加了一些品牌。我还创建了一个名为taxonomy brands的文件。php,它似乎工作得很好。如果我访问www.domain。com/brands/adidas然后我可以看到所有阿迪达斯品牌的帖子。然而,当我访问www.domain时。com/brands/I收到404错误。我希望此页面显示所有可用品牌。(阿迪达斯、耐克、asics等)请帮助Richard