Variabler Bereich, der undefinierte Variablenhinweise in enthaltenen Dateien erzeugt

Ich baue ein WordPress-Theme und auf der Startseite kann der Benutzer auswählen, wie er seine Posts bestellen möchte. Ich habe dann zwei functionen erstellt, die die Benutzerauswahl durch die Variable $user_choice und eine Abfrage basierend auf dieser Auswahl entwickeln.

Ich habe jedoch Probleme mit dem scope und erhalte folgende Hinweise / Fehler:

Hinweis: Undefinierte Variable: user_choice in /Users/Chappell/Websites/LFB/wp-content/themes/lfb/front-page-loop.php in Zeile 3

Hinweis: Undefinierte Variable: user_choice in /Users/Chappell/Websites/LFB/wp-content/themes/lfb/front-page-loop.php in Zeile 5

Hinweis: Undefinierte Variable: header_query in /Users/Chappell/Websites/LFB/wp-content/themes/lfb/front-page-loop.php in Zeile 7

Schwerwiegender Fehler: Rufen Sie eine Memberfunktion have_posts () für ein Nichtobjekt in /Users/Chappell/Websites/LFB/wp-content/themes/lfb/front-page-loop.php in Zeile 7 auf

Titelseite.php

   

Now displaying

<option value="most-recent" >Most Recent <option value="most-commented" >Most Commented <option value="most-viewed" >Most Viewed <option value="featured" >Featured

Front-Seite-Schleife.php

  'comment_count', 'posts_per_page' => 1 ); break; case $user_choice === 'most-recent'; $args = array( 'orderby' => 'date', 'posts_per_page' => 1, 'cat' => 239 ); break; case $user_choice === 'most-viewed'; $args = array( 'meta_key' => 'lfb_post_views_count', 'orderby' => 'meta_value_num', 'posts_per_page' => 1 ); break; case $user_choice === 'featured'; $args = array( 'orderby' => 'date', 'posts_per_page' => 1, 'category_name' => 'featured' ); break; default: echo 'No posts were found matching this query.'; } $header_query = new WP_Query($args); return $header_query; } /* Takes the user choice from the home page select button and produces * a WP_Query relevant to that choice. Displays an unlimited amount of posts per * query. * @param string $user_choice */ function posts_arg_finder($user_choice) { switch ($user_choice) { case $user_choice === 'most-commented'; $args = array( 'orderby' => 'comment_count', ); break; case $user_choice === 'most-recent'; $args = array( 'orderby' => 'date', 'cat' => 239 ); break; case $user_choice === 'most-viewed'; $args = array( 'meta_key' => 'lfb_post_views_count', 'orderby' => 'meta_value_num', ); break; case $user_choice === 'featured'; $args = array( 'orderby' => 'date', 'category_name' => 'featured' ); break; default: echo 'No posts were found matching this query.'; } $query = new WP_Query($args); return $query; } ?> 
have_posts() ) : while ( $header_query->have_posts() ) : $header_query->the_post() ?> ID; ?>
<a href="https://wordpress.stackexchange.com/questions/159381/variable-scope-producing-undefined-variable-notices-in-included-files/">

'img-responsive')); ?>
<?php endwhile; else : echo '

No main post found

'; endif; ?>
have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); if ( $post->ID == $do_not_duplicate ) continue; if ($i != 0 && $i % 1 == 0) { // add new row after 1 post echo '
'; } $i++; ?>
<a href="https://wordpress.stackexchange.com/questions/159381/variable-scope-producing-undefined-variable-notices-in-included-files/">


<?php endwhile; else : echo '

No posts found

'; endif; ?>

Solutions Collecting From Web of "Variabler Bereich, der undefinierte Variablenhinweise in enthaltenen Dateien erzeugt"

Ich habe die Antwort in einem anderen Thread gefunden. Übergabe von Variablen über locate_template

Im Wesentlichen ändert die WordPress-function get_template_part den Gültigkeitsbereich der Variablen $user_choice . Das PHP-Standardverhalten bei Verwendung von include () ist, dass die Variable aus dem aktuellen Skript in der enthaltenen Datei noch verfügbar ist. Da jedoch get_template_part() eine function ist, haben alle Variablen in dieser Vorlagendatei jetzt einen lokalen Gültigkeitsbereich. Daher die Fehler.