如何获得任何'任何'选项包括新的帖子状态?

时间:2017-02-07 08:35:02

标签: php wordpress

我创建了一个名为" old"使用下面的代码。

    $args = [
        'label' => _x( 'Old', 'page' ),
        'label_count' => _n_noop( 'Old (%s)', 'Old (%s)' ),
        'public' => false,
        'internal' => true,
        'show_in_admin_all_list' => true,
        'show_in_admin_status_list' => true,
        'exclude_from_search' => true,
        'publicly_queryable' => true,
    ];

    register_post_status( 'old', $args );

当我尝试以任何状态发布所有帖子时,我无法获得标记为" Old"的帖子。

$args = array(
    'meta_key'    => 'parent_post_id',
    'meta_value'  => 123,
    'post_status' => 'any',
    'post_type'   => 'any',
);
$posts = get_posts( $args ); // posts without "old"

如果我通过" Old"作为post_status值,使用" any"在数组中,它可以工作。

 $args = array(
    'meta_key'    => 'parent_post_id',
    'meta_value'  => 123,
    'post_status' => ['any', 'old'],
    'post_type'   => 'any',
);
$posts = get_posts( $args ); // posts with "old"

我该怎么做才能获得标记为" old"与"任何" Wp查询中的选项?

1 个答案:

答案 0 :(得分:1)

如果您阅读the docs

  

'任何' - 检索除邮寄状态以外的任何状态   ' exclude_from_search'设置为true(即垃圾和自动草稿)。

看看你的代码:

'exclude_from_search' => true,