цикл while_posts () игнорирует любой возвращаемый HTML - PullRequest
0 голосов
/ 26 марта 2019

Итак, в основном я создаю небольшую функцию, чтобы получать самые последние сообщения с определенной категорией из WordPress и просто связывать их на тестовой странице.Сама функция работает, вытащил ее из этого стека обмена потока .Мой цикл while настроен на данный момент, игнорируя все HTML / CSS, которые я пытаюсь вернуть.

  1. Удаление the_post () игнорирует $ args и перечисляет все сообщения из всех категорий вместо только одной, которую я перечислил,но все равно игнорирует HTML.
  2. Удаление wp_reset_postdata () ничего не делает, насколько я вижу, не решает мою проблему.
  3. Добавление <br> или clearfix divs не решает проблему.
  4. Наличие возврата в цикле while отправляет только последнее последнее сообщение, поскольку оно закрывает цикл после возврата.
  5. Попытка использовать echo вместо return, тот же результат.
function link_recent_posts(){
    $text = "";
    $args = array('posts_per_page' => 2, 
                  'cat' => '144',);
    $q = new WP_Query($args);
    if($q->have_posts() ){
        while( $q->have_posts() ){
            $q->the_post();
            $text .= "<a href='".the_permalink()."'>".the_title()."</a><br>";
        }
        wp_reset_postdata();
    }
    return $text;
}
add_shortcode('TestRecentPosts', 'link_recent_posts');

Ожидаемый результат должен быть

<a href='LINK1'> TITLE TITLE TITLE </a><br>
<a href='LINK2'> TITLE TITLE TITLE </a><br>

Результат, который я получаю:

<div class="wordpress-content-section">
    <div class="clearfix"></div>
    LINK 1
    TITLE 1
    LINK 2
    TITLE 2
    <a href=""></a><br>
    <a href=""></a><br>
</div>

Представьте, что между ссылками и заголовками 0 пробелов.

Issue Resolved

  1. Убран возврат
  2. Вместо увеличения переменной $ text, я добавил эхо для строки.
  3. Вместо использования the_permalink ()и the_title (), я использовал get_the_permalink () и get_the_title ().

1 Ответ

0 голосов
/ 26 марта 2019

Используйте взамен get_the_permalink () и get_the_title () . the_permalink () и the_title () отражают результаты напрямую.

СМ

https://core.trac.wordpress.org/browser/tags/5.1.1/src/wp-includes/post-template.php#L0

https://developer.wordpress.org/reference/functions/the_permalink/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...