如何使用Get_Terms()仅返回具有特定自定义字段值的帖子的术语

时间:2020-12-19 作者:Fint

我使用get\\u terms()构建过滤器按钮,以启用过滤事件列表(自定义post\\u类型)。

$terms = get_terms( \'kategorien\', [\'orderby\' => \'slug\', \'hide_empty\' => 1 ]);

现在,我们只想显示具有特定meta\\u值的帖子的术语。有人知道如何做到这一点吗?

非常感谢。

2 个回复
SO网友:ktscript

Try to do this:

$args = array(
  \'taxonomy\' => \'kategorien\',
  \'orderby\' => \'slug\',
  \'order\' => \'ASC\',
  \'hide_empty\' => true,
  \'meta_key\' => \'YOUR_KEY_VALUE\',
  \'meta_value\' => true
);

$terms = get_terms( $args );
SO网友:Fint

好的,我就是这样解决的:

    //1. Get all events with meta field 

        $args = [
          \'post_type\' => "events",
          \'posts_per_page\' => -1,
          \'meta_query\' => [
            [
             \'key\'       => \'event_archive\',
             \'value\'     => "true",
             \'compare\'   => \'!=\'
            ]
           ],
          \'fields\'        => \'ids\',       
        ];
                
        $myEvents = new WP_Query( $args );
      
 //2. Get all terms including only posts from first query 
             
        $args = [
            \'taxonomy\'   => \'kategorien\',
            \'hide_empty\' => true,
            \'orderby\' => \'slug\',
           \'object_ids\' => $myEvents->posts, 
        ];
                    
        $myTerms = get_terms( $args);

相关推荐

使用自定义分类层次结构按计数对GET_TERMS排序

当我用普通的Wordpress帖子测试get\\u术语时,它似乎起到了作用。可能是因为我还没有这些类别的层次结构。但当按任何方式排序时,它不适用于WooCommerces自定义分类法“product\\u cat”。我试图按计数排序,它会按名称返回它们。这些产品类别嵌套在类别树的3层深处。也许这会影响它?$cats = get_terms(array( \'taxonomy\' => \'product_cat\', \'hide_empty\' => fals