web-dev-qa-db-ja.com

コメントのメタ値に関する条件付きの投稿を取得する

5日以上前のmessage型の最新のコメントを持ち、comment_metaの値がpost_type=projectsであるすべての投稿post_status=publishおよびkey=valueを取得する必要があります。

get_posts()関数で実行するクエリを準備する方法を知りたいです。

3
muaaz

まず以下のコメントクエリを試すことができます。

$comments = get_comments( 
    [
        'post_type'     => 'projects',
        'post_status'   => 'publish',
        'type'          => 'message',
        'date_query'    => [
            [
                'before'    => '5 days ago midnight', 
                'inclusive' => true,
            ]
        ],
        'meta_query'    => [
            [
                'key'   => 'foo',       // <-- Adjust to your needs!
                'value' => 'bar'        // <-- Adjust to your needs!
            ]
        ]           
    ] 
);

そして次のようにして投稿IDを収集します。

$post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) );

number属性を使用して、照会されるコメントの数を制限することを検討したくなるかもしれません。

それならと一緒に使用します。

$query = new WP_Query( [ 'post__in' => $post_ids, ... ] );

空でない$post_ids配列の場合。

1
birgire