Как отобразить функцию the_content в этом цикле?
Вопрос
У меня есть этот цикл на моем сайте WordPress, который отображает последние сообщения со своими названиями, я хочу отобразить контент Post после заголовка. Я обычно получаю его с помощью функции get_the_content, но в этом случае я не могу заставить ее работать. Это петля:
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>";
}
Кто -нибудь знает, как я мог это сделать? Спасибо
Решение
Попробуйте вместо этого:
...
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();
...
Другие советы
Немного необычная структура петли, которую у вас есть. get_the_content()
Работает внутри цикла и с настройками глобальных переменных. И вы не настраиваете эти глобальные переменные.
Для работы с вашим текущим кодом это будет что -то вроде:
apply_filters('the_content', $question->post_content);
Чтобы сделать шаблонные теги правильно работать, вам нужно использовать setup_postdata()
, см. Примеры в get_posts()
документация.