“Hinweis: Undefinierte Variable: Inhalt” zeigt

Ich verwende diesen Code, wenn ich verwandten Inhalt von benutzerdefinierter Taxonomie zeige. Aber es zeigt “Hinweis: Undefinierte Variable: Inhalt”

Hier ist mein Code:

ID, $taxonomy); if ($tags) { $first_tag = $tags[0]->term_id; $second_tag = $tags[1]->term_id; $third_tag = $tags[2]->term_id; $args = array( 'post_type' => get_post_type($post->ID), 'posts_per_page' => 4, 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => $taxonomy, 'terms' => $second_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $first_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $third_tag, 'field' => 'id', 'operator' => 'IN', ) ) ); $related = get_posts($args); $i = 0; if( $related ) { global $post; $temp_post = $post; foreach($related as $post) : setup_postdata($post); $content .= ''; endforeach; $post = $temp_post; } } return $content; } add_action('the_content', 'do_jt_related_posts'); function do_jt_related_posts() { if( is_singular('post') ) : echo get_the_content(); echo pippin_related_posts(); else : echo get_the_content(); endif; } 

Wenn ich WordPress-Debugging auschecke, ist es in Ordnung, aber wenn Debug eingeschaltet wird, dann zeigt es diesen Fehler an. Irgendeine Idee, warum das zeigt? Ich habe dieses Code-Formular hier .

Solutions Collecting From Web of "“Hinweis: Undefinierte Variable: Inhalt” zeigt"

Obwohl die eigentliche Frage außerhalb des Themas liegt, würde ich einige Änderungen am Code vornehmen, um ihn zuverlässiger und etwas schneller und weniger ressourcenintensiv zu machen:

  • Füge $content = ''; Ganz oben in der function wird dies die Benachrichtigung ” Nicht definierte Variable” verhindern

  • wp_get_post_terms() nur die Begriff-ID von wp_get_post_terms() . Dadurch wird diese function schneller und Sie werden keine Informationen abrufen, die Sie nicht verwenden werden. Fügen Sie einfach ein array('fields' => 'ids' ) als dritten Parameter hinzu

  • Anstatt $post global zu verwenden, was nicht sehr zuverlässig ist, verwenden Sie get_queried_object() , um die aktuellen Post-Informationen zu erhalten

  • Entfernt den Zähler, ich sehe keine Notwendigkeit dafür

  • WP_Query ist nur eine persönliche Vorliebe, da Sie Postdata nicht einrichten müssen und $post global verwenden müssen

Hier ist die function neu geschrieben

 function pippin_related_posts($taxonomy = '') { $current_post = get_queried_object(); $content = ''; if($taxonomy == '') { $taxonomy = 'post_tag'; } $tags = wp_get_post_terms($current_post->ID, $taxonomy, array('fields' => 'ids' )); if ($tags) { $first_tag = $tags[0]; $second_tag = $tags[1]; $third_tag = $tags[2]; $args = array( 'post_type' => $current_post->post_type, 'posts_per_page' => 4, 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => $taxonomy, 'terms' => $second_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $first_tag, 'field' => 'id', 'operator' => 'IN', ), array( 'taxonomy' => $taxonomy, 'terms' => $third_tag, 'field' => 'id', 'operator' => 'IN', ) ) ); $related = new WP_Query($args); if( $related->have_posts() ) { while($related->have_posts() ) { the_post(); $content .= ''; } wp_reset_postdata(); } } return $content; } add_action('the_content', 'do_jt_related_posts'); function do_jt_related_posts() { if( is_singular('post') ) : echo get_the_content(); echo pippin_related_posts(); else : echo get_the_content(); endif; }