1

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

 $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');
     }
   }`
4

2 回答 2

1

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

        $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它可能看起来像这样。

        $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' );
            }
        }
于 2021-12-16T00:09:38.637 回答
0

只是改变

hide_empty = true 例如:

 $terms = get_terms( array(
        'taxonomy' => 'post-type',
        'hide_empty' => true,
    ));

无需匹配零计数。它会给出有帖子的结果。不用担心 100% 肯定它会起作用。

于 2018-05-21T05:01:42.123 回答