首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除包含零帖子的分类

如何删除包含零帖子的分类
EN

Stack Overflow用户
提问于 2018-05-21 12:50:55
回答 2查看 125关注 0票数 0

我正在尝试删除没有帖子的术语/分类法。下面是代码,它抛出错误警告:为第二个foreach()提供的参数无效。有什么建议吗?

代码语言:javascript
复制
 $terms = get_terms( array(
        'taxonomy' => 'post-type',
        'hide_empty' => false,
    ));
   $q = new WP_Query($terms);

   foreach($q as $term){

    foreach($term as $t) {

       if($t->count == 0)
          wp_delete_term( $t->term_id, 'post-type');
     }
   }`
EN

回答 2

Stack Overflow用户

发布于 2018-05-21 13:01:42

只要改变就好

hide_empty = true例如:

代码语言:javascript
复制
 $terms = get_terms( array(
        'taxonomy' => 'post-type',
        'hide_empty' => true,
    ));

不需要与零计数匹配。它会给出有帖子的结果。不用担心,100%确定它会工作。

票数 1
EN

Stack Overflow用户

发布于 2021-12-16 00:09:39

您的代码中有一个额外的WP_Query。如果您的分类法是post-type,代码可能如下所示。

代码语言:javascript
复制
        $terms = get_terms( [
            'taxonomy'               => 'post-type',
            'hide_empty'             => false,
        ] );

        foreach ( $terms as $t ) {
            if ( 0 === $t->count ) {
                wp_delete_term( $t->term_id, 'post-type' );
            }
        }

对于像post_tag这样更常见的分类法,它可能看起来像这样。

代码语言:javascript
复制
        $terms = get_terms( [
            'taxonomy'               => 'post_tag',
            'hide_empty'             => false,
            'update_term_meta_cache' => false,
            'hierarchical'           => false,
        ] );

        foreach ( $terms as $t ) {
            if ( 0 === $t->count ) {
                wp_delete_term( $t->term_id, 'post_tag' );
            }
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50442162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档