Wie kann man auf das $ wp_query-Objekt vom Array der von get_posts bereitgestellten Posts zugreifen?

Ich habe eine einfache benutzerdefinierte Abfrage von get_posts :

 
    'event', 'numberposts' => 6 ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); echo '
  • ' . get_the_title() . '
  • '; endforeach; wp_reset_postdata(); ?>

Es ist jedoch erforderlich, auf das Abfrageobjekt dieser benutzerdefinierten Schleife zuzugreifen, auf das standardmäßig new WP_Query werden kann, wenn Sie benutzerdefinierte Schleifen mithilfe der new WP_Query Methode new WP_Query . (Dies wird benötigt, um verbundene Beiträge anderer CPTs zu erhalten, wobei der Mechanismus durch das exzellente Posts2Posts- Plugin each_connected .) Ist es möglich, von get_posts zum Abfrageobjekt zu get_posts ? Oder besteht die einzige Möglichkeit darin, die Schleife im new WP_Query Stil new WP_Query ?

Solutions Collecting From Web of "Wie kann man auf das $ wp_query-Objekt vom Array der von get_posts bereitgestellten Posts zugreifen?"

Sie können jede WP-Abfrage mit pre_get_posts() filtern. Der (manchmal) knifflige Teil ist, dass es gegen alle Abfragen von WP ausgeführt wird, also müssen Sie Ihre Abfrage mithilfe von WP-Bedingungen is_admin() , is_page() , is_archive() , etc …).

Auf dieser Seite finden Sie auch einige nützliche Beispiele.

Ja, ich denke der einzige Weg ist (Siehe die Antwort von Andrei Gheorghiu.) Wenn Sie sich dazu entscheiden, die Schleife neu zu get_posts() , besteht das etwas knifflige Bit darin, das $args Array zu den gleichen wie bei get_posts() zu machen:

 $args = array( 'post_type' => 'event', 'posts_per_page' => 6, 'post_status' => 'publish', // If post_type 'attachment' then 'post_status' => 'inherit' 'orderby' => 'date', 'order' => 'DESC', 'suppress_filters' => true, 'ignore_sticky_posts' => true, 'no_found_rows' => true, ); $query = new WP_Query; $myposts = $query->query( $args );