在帖子编辑屏幕/边箱上显示所有帖子标签


8

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

我在这里显示了类似的问题,在admin-> edit post中显示所有标签。但是它建议编辑/修改WordPress核心文件,这并不是我真正想要的。因为那时升级WordPress将是一个巨大的问题。

我在Google搜索中也找不到任何内容。因此,有没有办法在后期编辑页面上列出所有或超过45个标签。

Answers:


9

我想说,最简单的方法是使用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';
}

2
+1。如果只能针对特定的帖子类型运行,那就太好了,但是恐怕并不是那么容易。关于“从最常用的标签中选择”,可以使用gettext过滤器进行更改。
gmazzap

@GM是的,我们可以更改文本。但是我对“从最常用的标签中选择”感到满意。虽然我想知道为什么我们不能在post type这里检查?这是在其他一切之前执行的吗?
罗伯特·休

1
无法在过滤器执行的上下文中确定帖子类型。您可以看到分类法附加到的帖子类型,但这仅在唯一的帖子类型时才有用。唯一的其他选择是删除默认post_tags_meta_box处理程序,并将其替换为您自己的默认处理程序。
TheDeadMedic 2015年

尽管您可以使用它$_SERVER['HTTP_REFERER']来查找post_type是否真的想要。
邦吉

1
您可以使用wp_get_referer()。请记住,false如果当前请求与前一个请求相等(无论有什么主意:慢拍),它也会返回。
kaiser 2015年

0

除了TheDeadMedic的答案,以显示所有标签:

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

0

只需添加一些基本的相关信息:

将分类法​​设置设置为'hierarchical'=>true它时,将使用类别格式侧框,并且默认情况下将显示所有术语。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.