Abrufen von Posts nach IDs (optional)

Ich möchte überprüfen, ob eine Variable eine Liste von Post-IDs enthält, und dann möchte ich nur die Posts dieser IDs abfragen, aber wenn diese Variable leer ist, möchte ich alle Posts anzeigen.

Problem: Wenn ich IDs an post__in , dann erhält es die Posts mit diesen IDs, aber wenn es leer ist, sollte es alle Posts zurückgeben, aber es gibt keinen Post zurück.

Der folgende Code erhält beispielsweise die Posts mit den IDs 1,2,3. Dies wird jedoch keinen Post zurückgeben, wenn die $ ids leer ist. Sollte es nicht ALLE Beiträge in diesem Fall zurückgeben? Wie kann ich alle Beiträge bekommen, wenn $ids leer ist, dh. $ids = ""; ?

 $ids = '1,2,3'; $arr = explode("," ,$ids); $args = array( 'posts_per_page' => $number, 'post__in' => $arr, ); 

Solutions Collecting From Web of "Abrufen von Posts nach IDs (optional)"

Es sieht so aus, als würde WordPress leeres post__in param nicht ignorieren. Also musst du das selbst so machen …

 $ids = '1,2,3'; if ( $ids ) { $arr = explode("," ,$ids); $args = array( 'posts_per_page' => $number, 'post__in' => $arr ); } else { $args = array( 'posts_per_page' => $number ); } 

Eine Alternative zu Krysieks Antwort. Beide sollten dasselbe erreichen und nur den Parameter post__in hinzufügen, wenn die $ ids existieren.

 $ids = '1,2,3'; $arr = explode("," ,$ids); $args = array( 'posts_per_page' => $number, ); if( $ids ) $args['post__in'] = $arr;