如何使用WP_QUERY查询特定作者和类别的帖子?

时间:2014-02-12 作者:Gixty

我目前有一个WP\\u查询,在那里我可以从一组特定的作者那里获得帖子。为此,我还想添加特定的类别。

$args = array( \'author__in\' => $authors, \'posts_per_page\' => 12, \'paged\' => $paged );
$authors是一个包含用户ID的数组。

所以,我需要查询来自作者和类别的帖子。

我在考虑使用这样的东西:

\'tax_query\' => array(
    \'relation\' => \'OR\',
    array(
        \'taxonomy\' => \'category\',
        \'field\' => \'id\',
        \'terms\' => array ( $cat_ids ),
    ),
    array(
        \'taxonomy\', => \'user\',
        \'field\' => \'id\',
        \'terms\' => array( $user_ids ),
    )
)
我知道用户不是分类法;然而,我正在寻找类似的工作。

编辑

好吧,我试过这个,到目前为止它仍在工作:

$args = array(
  \'author__in\'     => $authors,
  \'category__in\'   => $terms,
  \'posts_per_page\' => 12,
  \'paged\'          => $paged
);
有更好的方法吗?

编辑2我以前的编辑没有按我想要的方式工作。需要注意的是,如果只指定类别,则不会显示帖子。我需要一个OR关系。

编辑3我还没有找到解决方案。当我在参数中使用author\\em>in和category\\em>in时,wordpress只显示作者的帖子,而不是同时显示两个作者的帖子。我需要显示来自作者和类别的帖子。我做错了什么?

3 个回复
SO网友:Sudeep K Rana

这就是你要找的吗?

$query = new wp_query($arr);
    $arr = array(
        \'author__in\'=> array(2,4,6), //Authors\'s id\'s you like to include
        \'posts_per_page\' => \'12\',
        \'paged\' => $paged,
        \'tax_query\' => array(
        array(
        \'taxonomy\' => \'category\',
        \'field\' => \'id\',
        \'terms\' => array ( $cat_ids ),
        )
    )
    );

SO网友:sdexp

你可以试试这样的。。。get_posts_by_author_sql

或者,如果您想根据作者/类别选择文章,您可以使用wpdb. 您可以在SQL中使用“连接”来获取所需的post ID。

SO网友:im.jokerliang

也许您可以在后端尝试以下操作:

wp-admin/edit.php?author=2 //author is specified
wp-admin/edit.php?cat=16,25&author=2 //include categories
此测试不像您描述的那样出现,因此请检查该值是否正确

$terms = array(16,25);
//$author = array(2);
$args = array(
    \'author__in\'  => isset($author) ? $author : 0,
    \'category__in\' => isset($terms) ? $terms : \'\'
    );
$demos = new WP_Query($args);
echo "<pre>";
print_r($demos);
echo "</pre>";

结束

相关推荐

是否使用wp_LIST_CATEGORIES在INCLUDE参数中包含名称或插件?

我在本地和远程工作,通过git推送代码。我在下面设置了当前代码,它查找标记并使用wp_list_categories. 我需要使用include 参数,因为没有带标记的层次结构(在此实例中我不能使用类别)。然而,由于我在本地和远程工作,从本地到远程的ID可能会不一样。因此,理想情况下,我想包括name 或slug, 但我知道include 参数仅允许ID。有没有办法包括name 或slug 在include 参数想法:我的朋友说我们可以有一个名字列表,然后循环遍历所有名字,然后使用get\\u term\