统计一个术语或一个类别在帖子中被使用的次数

时间:2013-11-21 作者:Vishal Khialani

我需要找出一个术语/标签或类别在WordPress的帖子中使用的次数。我编写了下面的SQL查询。

SELECT t.name , count(*)FROM wp_terms t
JOIN wp_term_taxonomy tt ON tt.term_taxonomy_id = t.term_id
JOIN wp_term_relationships tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
JOIN wp_posts p ON p.id=tr.object_id
Where t.name=\'3d\'
我知道这是错的,因为我随机检查了我得到的帖子,但没有使用这个词。请告诉我哪里可能出错?

3 个回复
SO网友:s_ha_dum

Wp_Query 应该可以为你做这件事。传递适当的参数,包括tax_query, 和检查found_posts.

$p = new WP_Query(
  array(
    \'post_type\' => \'custcpt\', // your CPT
    \'tax_query\' => array(
      array(
        \'taxonomy\' => \'custtax\', // your tax
        \'field\' => \'id\',
        \'terms\' => $cat->term_id, // your term ID
      )
    ), 
    \'ignore_stickie_posts\' => true,
    \'fields\' => \'ids\',
  )
);
echo $p->found_posts;
未测试,但应接近。

SO网友:Eric Holmes

如果分类法仅附加到一个帖子类型,则可以使用term_taxonomy.count 表列。

SELECT t.name , tt.count FROM wp_terms t
JOIN wp_term_taxonomy tt ON tt.term_taxonomy_id = t.term_id
Where t.name=\'3d\'
应该做到这一点。

SO网友:Vishal Khialani

I solved it:

SELECT t.name, count(*) FROM wp_terms t
JOIN wp_term_taxonomy tt ON tt.term_id = t.term_id
JOIN wp_term_relationships tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
JOIN wp_posts p ON p.id=tr.object_id
WHERE t.name = \'3d\'
结束

相关推荐

帮助按字母顺序对GET Terms(‘wpsc_product_ategory’)中的$Terms进行排序

我正在尝试获取给定类别的wpsc\\U product\\U类别术语列表,并让它们按字母顺序(按名称)显示,并带有指向其页面的链接。这给出了正确的列表,但sort()不起作用。这些术语不是按字母顺序排列的。任何帮助都将不胜感激!<?php //display sorted list of wpsc product categories $category_id = 10; $terms = get_terms(\'wpsc_product_category\',\'hide