获取与定义的标记数组匹配的帖子

时间:2020-05-06 作者:Andy

我一直在挠头,找不到一个不需要多次查询的合理解决方案。

在我的例子中,帖子有多个标签,但它们可以分为多个“集合”

平台(如Facebook、Snapchat)

  • 标签(如冷、热、恐怖)
    • 我需要获取的是属于给定平台(可以是多个平台)且具有其中一个标签的帖子。

      一些例子可以更好地解释所需的结果。

      选中的标签:Facebook, cold, hot - 结果是具有"cold" and "Facebook""hot" and "facebook"Facebook, Snapchat, cold, hot - 结果是具有"cold" and "Facebook", "cold" and "Snapchat", "hot" and "facebook", "hot" and "snapchat".all the posts for a given platform that have one of the hashtags.

      在代码中,我确实将平台和hashtag作为单独的数组,因此我可以很容易地区分它们,但问题是,从Worpdress的角度来看,它们都是“标记”。

    1 个回复
    最合适的回答,由SO网友:Jacob Peattie 整理而成

    这应该可以通过分类查询实现,如下所示:

    $query = new WP_Query(
        [
            \'tax_query\' => [
                \'relation\' => \'AND\',
                [
                    \'taxonomy\' => \'post_tag\',
                    \'terms\'    => $platforms,
                    \'compare\'  => \'IN\',
                ],
                [
                    \'taxonomy\' => \'post_tag\',
                    \'terms\'    => $hashtags,
                    \'compare\'  => \'IN\',
                ],
            ],
        ]
    );
    
    您只需要替换$platforms$hashtags 具有适当数组的变量。如果只有一个平台,而不是一个阵列,我建议只使用ID并更改\'IN\' 将值与进行比较\'=\' 对于第一个数组。

    在我的评论中,我说用分类法查询会更容易,但我意识到这不是真的,方法将与上面的相同。然而,这将使条款的管理更加容易。