Ich muss alle Posts post_type=projects
und post_status=publish
abrufen, deren letzter Kommentar vom Typ message
älter als 5 Tage ist und deren comment_meta-Wert key=value
ist.
Ich möchte wissen, wie ich die Abfrage für die Ausführung in der Funktion get_posts()
vorbereiten kann.
Sie können zuerst die folgende Kommentarabfrage versuchen:
$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!
]
]
]
);
und sammle dann die Post-IDs mit:
$post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) );
Möglicherweise möchten Sie die Anzahl der abgefragten Kommentare mit dem Attribut number
einschränken.
Dann könnten Sie z. Verwenden Sie es mit:
$query = new WP_Query( [ 'post__in' => $post_ids, ... ] );
für ein nicht leeres $post_ids
-Array.