How do I display the function the_content in this loop?
Question
I have this loop in my wordpress site which displays the latest posts with their titles, I want to display the post content after the title. I normally retrieve it with the function get_the_content but I cannot make it work in this case. This is the loop:
while ( $q_query->have_posts() )
{
$q_query->next_post();
$question = get_post($q_query->post);
$loophtml = $loophtml . "<li><span class='list-question-title'>" . "<a class='list-answer-link' href='" . get_permalink($question->ID) ."'>" . $question->post_title . "</a></span>";
$loophtml = $loophtml . "<span class='list-number-answers'>" . get_comments_number($question->ID) . " comentarios</span> · <a href='" . get_permalink($question->ID) ."'>Comentar</a>";
$loophtml = $loophtml . "</li>";
}
Anyone knows how I could do it? Thanks
Solution
try this instead:
...
global $post;
while ($q_query->have_posts()){
$q_query->the_post();
$loophtml .= "<li><span class='list-question-title'>" . "<a class='list-answer-link' href='" . get_permalink() ."'>" . get_the_title() . "</a></span>";
$loophtml .= get_the_content();
$loophtml .= "<span class='list-number-answers'>" . get_comments_number() . " comentarios</span> · <a href='" . get_permalink() ."'>Comentar</a>";
$loophtml .= "</li>";
}
wp_reset_query();
...
OTHER TIPS
A little unusual Loop structure you have there. get_the_content()
works inside the Loop and with global variables set up. And you are not setting up those global variables.
To work with your current code it will be something like:
apply_filters('the_content', $question->post_content);
To make template tags work properly you need to use setup_postdata()
, see examples in get_posts()
documentation.
Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange