Wie funktioniert get_template_part () in einer Schleife?

Könnte mir bitte jemand erklären, wie diese function innerhalb einer Schleife funktioniert?

Ich habe diese functionen oft in einer WordPress-Schleife wie folgt verwendet:

loop start get_template_part("template/part", "example"); loop end 

Und die Magie dabei ist, dass ich functionen wie the_title() problemlos in der Vorlage part-example.php aufrufen kann.

Aber wenn ich versuche, benutzerdefinierte Variablen wie folgt an die part-example.php , wird es fehlschlagen:

 $var = "variable"; Start loop get_template_part("template/part", "example"); End loop 

Und in der Datei part-exmaple.php

 echo $var; // this will fail 

Ich finde einen Workaround, um dieses Problem zu lösen, indem ich diesen Artikel gut lese, es benutzt include( locate_template() ) .

Aber ich frage mich nur, wie die Post-Daten von get_template_part() durchlaufen werden?

Danke im Voraus.

Solutions Collecting From Web of "Wie funktioniert get_template_part () in einer Schleife?"

Die Postdaten werden nicht tatsächlich an den Schablonenteil weitergegeben. Es gibt eine globale Variable namens $post die Daten über den aktuellen Post enthält, beispielsweise die Post-ID.

Wenn Sie einen Vorlagen-Teil mit get_template_part() , schaut WordPress in diese Vorlage und führt alles aus, was darin enthalten ist, und gibt es in der Schleife aus.

Wenn Sie beispielsweise the_title() in Ihrem the_title() , versucht WordPress, die function ” the_title() , die von der Beitrags-ID abhängt. Da jedoch die globale $post Variable in Ihrem Schablonenteil verfügbar ist, ist der Aufruf von $post->ID erfolgreich und die function ” the_title() wird den Titel des aktuellen the_title() erfolgreich ausdrucken.

Wenn Sie einige Daten an Ihren set_query_var(); möchten, können Sie set_query_var(); stattdessen. Betrachten Sie eine Schleife wie diese:

 if (have_posts()) { while(have_posts()) { the_post(); set_query_var( 'sample', 'sample_value' ); get_template_part("template/part", "example"); } } 

Dadurch wird das Beispiel an die Vorlagendatei übergeben, die mit dieser Codezeile abgerufen werden kann:

extract( $wp_query->query_vars );

und dann gedruckt von:

var_dump( $sample);

Ich hoffe, Sie haben jetzt ein tieferes Verständnis darüber, wie dieses Feature funktioniert.