“Observação: Variável indefinida: conteúdo” está mostrando

Estou usando este código se for exibir conteúdo relacionado de taxonomia customizada. Mas está mostrando “Aviso: variável indefinida: conteúdo”

Aqui está o meu código:

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; } 

Quando eu desligar o WordPress, está tudo bem, mas quando ativar a debugging, então está mostrando esse erro. Alguma idéia de por que isso está mostrando? Eu tenho este formulário de código aqui .

Solutions Collecting From Web of "“Observação: Variável indefinida: conteúdo” está mostrando"

Embora a questão real esteja fora do tópico, eu faria algumas alterações ao código para torná-lo mais confiável e um pouco mais rápido e menos recurso intensivo:

  • Adicione $content = ''; No topo da function, isso irá cuidar do Aviso: aviso variável indefinido

  • Apenas obtenha o termo id’s from wp_get_post_terms() . Isso tornará esta function mais rápida e você não recuperará informações que você não vai usar. Basta adicionar array('fields' => 'ids' ) como o terceiro parâmetro

  • Em vez de usar o $post global que não é muito confiável, use get_queried_object() para obter as informações de postagem atuais

  • Removido o contador, não vejo necessidade disso

  • WP_Query é apenas uma preferência pessoal, pois você não precisa configurar postdata e usar o $post global

Aqui está a function reescrita

 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; }