问题描述

我正在寻找一种方式来显示 WordPress 管理部分中的发布编辑屏幕/标签边框上的所有帖子标签。默认情况下 WordPress 显示 45 个最常用的标签,但我需要一种方法来列出所有标签,或至少增加此限制。

我在这里发现了类似的问题 Showing all tags in admin -> edit post 。但它建议编辑/修改 WordPress 核心文件,这不是我真正想要的。因为升级 WordPress 会是一个巨大的问题。

我在 Google 搜索中找不到任何东西。那么有什么办法可以在帖子编辑页面上列出全部或者多于 45 个标签。

最佳解决方案

我会说最简单的方法是使用 get_terms_args 过滤器并取消设置 number 限制,如果上下文是正确的 (AJAX 请求获取标签云):

function wpse_64058_all_tags ( $args ) {
    if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' )
        unset( $args['number'] );
    return $args;
}

add_filter( 'get_terms_args', 'wpse_64058_all_tags' );

注意:在编辑框中,链接仍将显示 「从最常用的标签中选择」,即使我们正在显示所有标签。

编辑:正如 @bonger 所建议的,您可以从引用者中确定帖子类型:

if ( $qs = parse_url( wp_get_referer(), PHP_URL_QUERY ) ) {
    parse_str( $qs, $args );

    if ( ! empty( $args['post_type'] ) )
        $post_type = $args['post_type'];
    elseif ( ! empty( $args['post'] ) )
        $post_type = get_post_type( $args['post'] );
    else
        $post_type = 'post';
}

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。