Arbeiten mit get_posts Parametern / Arrays / Strings

Ich übergebe alle meine query_posts-Abfragen nach viel Forschung über get_posts, wie schlecht es für die performance ist. Meine Lösung ist get_posts, aber die Arbeit damit verwirrt mich. Hier ist was ich habe:

$posts = get_posts('showposts=-1&offest=10&post_type=any'); foreach ($posts as $post) : ?> 
<a href="https://wordpress.stackexchange.com/questions/83547/working-with-get-posts-parameters-arrays-strings/" rel="bookmark">

Es funktioniert, aber einige der Parameter nicht, wie Offset und “jeder” Beitragstyp ist zu vage.

 $posts = get_posts('showposts=-1&offest=10&post_type=any'); 

Der Codex sagt uns, dass wir auch ein Array verwenden können:

 $query = new WP_Query( array( 'post_type' => array( 'post', 'page', 'movie', 'book' ) ) ); 

Aber das ist ein häufiges Problem, mit dem ich nicht umgehen kann. Wie bekomme ich dynamische Parameter in das Array oder wo finde ich die Regeln für Parameter im String-Format wie meinen Code?

Solutions Collecting From Web of "Arbeiten mit get_posts Parametern / Arrays / Strings"

Wie bekomme ich dynamische Parameter in das Array, …

Dieses Beispiel aus dem Codex zeigt Folgendes:

 $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; $sticky = get_option( 'sticky_posts' ); $args = array( 'cat' => 3, 'ignore_sticky_posts' => 1, 'post__not_in' => $sticky, 'paged' => $paged ); $query = new WP_Query( $args ); 

Sowohl $paged als auch $sticky sind Variablen – ich nehme an, dass Sie das mit ‘dynamischen Parametern’ meinen.

oder wo finde ich die Regeln für Parameter im String-Format wie meinen Code?

Nicht ganz sicher, was das bedeutet, aber die Codex-Seite für WP_Query sollte dir alle Parameter geben. Sie scheinen zu wissen, wie diese Abfragezeichenfolge-ähnliche Zeichenfolge erstellt wird, aber ich ermutige Sie, dies nicht zu tun. Erstellen Sie ein Array und verwenden Sie dieses. Diese Zeichenfolge ist schwer zu lesen. Es ist schwer zu bearbeiten. Und es funktioniert wahrscheinlich nicht mit den komplizierteren Abfragen, wie der Meta-Abfrage, aber darüber bin ich wirklich nicht sicher, da ich nie diese Zeichensyntax verwende.

Ich fand es heraus und dachte, ich würde die Antwort auf diese Frage für indizierte Arrays nach der süßen Erklärung von @s_ha_dum für assoziative Arrays posten:

Sie müssen jeden Wert in einem Array durchlaufen. Zum Beispiel muss mit add_meta_box () die function FOREACH für einen benutzerdefinierten Post-Typ ausgetriggers werden

 function add_post_meta_boxes() { $types = array('custom_type', 'post', 'page'); foreach( $types as $type ) { add_meta_box( 'unique_id', // Unique ID esc_html__( 'Post Class', 'themename' ), // Title 'CALLBACK_FUNC', // Callback function - html $type, // Admin page (or post type) 'side', // Context 'default' // Priority ); } }