get all tags from category

时间:2011-03-21 作者:Fuxi

我在模板中按类别显示所有帖子,我想知道:是否有可能获得该类别使用的所有标签的列表?

我只知道如何下拉标签,但它来自所有文章,我还不知道如何按类别过滤它-有什么想法吗?

这是链接http://wphacks.com/how-to-display-wordpress-tags-dropdown-menu/

线等回答

3 个回复
SO网友:kaiser

迟交的答复

get_terms() 这就是原因。不需要任何自定义查询。

SO网友:Rashod Chamikara Bandara

也许这已经很晚了,但我认为这会对某人有所帮助。这是为特定类别提供标记列表的代码

$terms = get_terms( array(
\'taxonomy\' => \'post_tag\',
\'hide_empty\' => false,
) );

SO网友:DevWL

10年后,但总比没有好。。。

类别和标记不相互关联。它们都与岗位/产品相关。因此,您需要查询所有帖子/产品并获取它们的ID,这样您就可以查询产品/帖子ID在这组ID中的标记。

有关WordPress帖子,请参见以下查询:

SET @CategoryByID = 1; -- set correct category ID
-- SET @CategoryByName = \'Politics\'; -- set correct category name

SELECT DISTINCT t.* FROM wp_posts AS p
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
LEFT JOIN wp_terms t ON t.term_id = tt.term_id
WHERE p.post_type="post" -- <<< for wordpress post type
AND p.post_status = \'publish\'
AND tt.taxonomy = "post_tag" -- <<< for wordpress post tags
AND p.ID IN
    (SELECT p.ID FROM wp_posts AS p
    LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
    LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
    LEFT JOIN wp_terms t ON t.term_id = tt.term_id
    WHERE p.post_type="post" <<< for wordpress post type
    AND p.post_status = \'publish\'
    AND tt.taxonomy = "category" -- <<< for wordpress post category
    AND tt.term_taxonomy_id = @CategoryByID -- <<< search category by id (use one)
    -- AND t.name = @CategoryByName  -- <<< search category by name (use one)
    ORDER BY p.ID)
ORDER BY p.ID
请参见下面的WooCommerce产品查询示例:

SET @CategoryByID = 18; -- set correct category ID
-- SET @CategoryByName = \'T-SHIRT\'; -- set correct category name

SELECT DISTINCT t.* FROM wp_posts AS p
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
LEFT JOIN wp_terms t ON t.term_id = tt.term_id
WHERE p.post_type="product" -- <<< for woocommerce post type
AND p.post_status = \'publish\'
AND tt.taxonomy = "product_tag" -- <<< for woocommerce tags
AND p.ID IN
    (SELECT p.ID FROM wp_posts AS p
    LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
    LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
    LEFT JOIN wp_terms t ON t.term_id = tt.term_id
    WHERE p.post_type="product"
    AND p.post_status = \'publish\'
    AND tt.taxonomy = "product_cat" -- <<< for woocommerce products
    AND tt.term_taxonomy_id = @CategoryByID -- <<< search category by id (use one)
    -- AND t.name = @CategoryByName  -- <<< search category by name (use one)
    ORDER BY p.ID)
ORDER BY p.ID

结束

相关推荐

Creating tags via API

我正在研究使用wpapi通过AJAX插入帖子。向自定义帖子类型动态添加标签的正确方法是什么?这些标记不是预定义的,而是由用户根据需要创建的。目前我正在做: $tags = explode(\" \", $_POST[\'post_tags\']); $new_entry = array( \'post_title\' => $_POST[\'post_title\'], \'pos