当前位置: 首页 > 知识库问答 >
问题:

WP查询:如何从特定作者或具有特定元值的作者处获取帖子

米丰
2023-03-14

我想检索那些作者(post表字段)是给定作者或具有给定元值(postemda表字段)的所有帖子。

如果“author”是一个元值,我知道我可以使用元查询来实现它。这里的问题是它不是。。。因此,我认为我不能在meta_查询中使用“author”字段,而使用“relation”键。

我要找的东西是:

$args = array(
    'post_type'  => array('post'),
    'orderby'    => 'ASC',
    'order'      => 'date',
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'relation'    => 'AND',
            array(
                'field'   => 'author',
                'value'   => $author_id,
                'compare' => '==',
            ),
            array(
                'key'     => '_meta_field_name',
                'compare' => 'NOT EXISTS',
            ),
        ),
        array(
            'relation'    => 'AND',
            array(
                'key'     => '_meta_field_name',
                'compare' => 'EXISTS',
            ),
            array(
                'key'     => '_meta_field_name',
                'value'   => $meta_field_value,
                'compare' => '==',
            ),
        ),
    ),
);

$data = new WP_Query( $args );

关于如何使用WP_Query实现这一目标的任何建议?

谢谢!

共有1个答案

纪勇军
2023-03-14

您可能想尝试一种类似的方法。其思想是查询要搜索的两个条件,然后将这两个查询合并为一个成品。

//Get posts with the author you're looking for
$args1 = array(
    'author_name' => 'testuser', //or 'author' => $author_id or something else
     );
$data1 = get_posts( $args1 );

//Get posts with the meta data you're looking for
$args2 = array(
    'meta_query' => array(
        array(
            'key'     => 'meta_field_name',
            'compare' => 'EXISTS',
        ),
        array(
            'key'     => 'meta_field_name',
            'value'   => $meta_field_value,
            'compare' => '==',
        ),
    ),
);
$data2 = get_posts( $args2 );

//Merge both arrays
$allData = array_merge( $data1, $data2 );

//Get just the IDs of all the posts found, while also dropping any duplicates
$postIDs = array_unique( wp_list_pluck( $allData, 'ID' ) );

//Do a new query with these IDs to get a properly sorted array of post objects
$args3 = array(
    'post__in' => $postIDs,
    'order' => 'ASC',
    'orderby' => 'date',
    );
$finalAnswer = get_posts( $args3 ); //This is your array of post objects. Ta-Da!
 类似资料:
  • 我使用Wp_查询类来查询我的帖子。页面加载时获取的模板中有15篇文章,它们的过滤效果良好。Infinity scroll使用JSON restful服务获取其他帖子。服务器端的过滤器工作正常,但我不知道如何将逻辑从服务器传输到正确的查询。 传递给服务器上Wp_查询的元_查询数组: 如何将其转换为查询?比如: /wp json/posts?过滤器[meta\u query][key]=主页,\u n

  • 问题内容: 我试图通过将所有参数元素为type_id =“ 4218”的所有“ ”元素从URL解析XML文件? XML文件: 这是我的Java代码: 这段代码给了我所有元素,我不想要,我想要属性type_id =“ 4218”的所有元素! 问题答案: XPath是您的正确选择: 并遍历

  • 我需要获取值,当单击具有但不起作用的特定链接时。。。 我的尝试: 我也试过 有什么想法吗?

  • 对于每个成员(作者),我有一个字段来存储成员性别。(Homme/Somme)。 数据存储在我的数据库中,wp_usermeta。 元键是“性别”,元值是“男人”或“女人”。 我试图写一个wp查询来显示所有作者的所有帖子,但只有“Homme”作者,另一个只有“女性”。 以下是我的wp查询,用于显示所有帖子,无需按性别筛选: 工作正常。 这是我到目前为止试图只从“男人”性别获得的帖子,但它不起作用。。

  • 问题内容: 请告诉我如何获取特定行的列值= 123的列名。 问题答案: 结果

  • 我有一个XML文件,我想取两个值。以下是XML: 我想让我们说一下<代码> 这是我尝试过的代码,但它不起作用: 有人能给我一个工作的例子吗?我是Java和XML的新手。