WP_Query nach Post-ID funktioniert nicht, wenn sich Post in benutzerdefiniertem post_status befindet

Ich möchte einen einzelnen Beitrag mit seiner ID mithilfe von WP_Query () anzeigen . Um dies zu tun, verwende ich das folgende Argument:

$args = array( 'p' => 61202); 

Das sollte funktionieren, scheint aber nicht zu funktionieren, wenn sich der Post in einem benutzerdefinierten post_status .

Um dies zu beheben, habe ich Folgendes versucht:

 $args = array( 'p' => 61202, // id of post 'post_type' => 'any', // apply to all post types 'post_status' => 'my_custom_status' // the custom post status ); 

Aber das funktioniert immer noch nicht. Warum?!

Gibt es einen bekannten Fehler? Ich führe diesen Code im wp-Admin-Bereich aus. Es funktioniert einwandfrei, wenn sich der Post in einem der WP-corepoststatus befindet.

Solutions Collecting From Web of "WP_Query nach Post-ID funktioniert nicht, wenn sich Post in benutzerdefiniertem post_status befindet"

WP_Query hat einen Fehler (# 29167), wenn Sie versuchen, Posts mit (fast?) Anderem Status als publish zu holen. Dieser Fehler scheint im Stamm behoben zu sein. Ich habe es nicht getestet, daher kann ich nicht sagen, ob es Ihren Anwendungsfall abdeckt. Probieren Sie es aus und geben Sie dort eine Rückmeldung, wenn dies nicht der Fall ist.

Es gibt zwei Problemumgehungen:

  1. Verwenden Sie get_post( $post_id ) . Dies führt eine eigene Abfrage und ist von diesem Fehler nicht betroffen.

  2. Verwenden Sie eine benutzerdefinierte DB-Abfrage, wenn Sie die Post-IDs nicht kennen:

  $sql = "SELECT * FROM $wpdb->posts WHERE post_status = %s AND post_type = %s"; $prepared = $wpdb->prepare( $sql, $status, $post_type ); $posts = $wpdb->get_results( $sql );