простой цикл по записям

22 дек. 2011 г., 22:13:25
Просмотры: 64.7K
Голосов: 9

Я знаю, что это вопрос новичка, но я никак не могу заставить цикл получать записи. Всё, что он делает - это получает данные только из самой страницы.

Я создал шаблон и добавил в него цикл.

<?php
if( have_posts() ) {
  while( have_posts() ) {
    the_post();
    ?>
    <h2><?php the_title(); ?></h2>
    <?php
  }
}
?>

редактирование: вот весь код: http://pastebin.com/k2rDu53b

6
Комментарии

Если ваш код выполняется внутри цикла, вы не получите ожидаемых результатов. Где выполняется этот фрагмент кода?

brandwaffle brandwaffle
22 дек. 2011 г. 22:16:46

Сразу после тега body, я думал, что это и есть цикл, have_posts...? Немного запутался. Вот весь код: http://pastebin.com/k2rDu53b

user766607 user766607
22 дек. 2011 г. 22:18:24

Я имел в виду, если бы вы уже находились внутри цикла, и затем этот код был бы внутри него... но это не ваш случай. Что вы видите в результате на странице?

brandwaffle brandwaffle
22 дек. 2011 г. 23:43:29

Только что протестировал это на локальной установке WP, и заголовки записей отображаются так, как и ожидалось. Это в папке вашей темы и работает как активная тема, или загружается каким-то другим способом? Если это тема, есть ли у вас файл style.css с хотя бы базовой информацией, определенной там? http://codex.wordpress.org/Theme_Development#Template_Files_List

brandwaffle brandwaffle
22 дек. 2011 г. 23:57:28

Зачем весь этот код шапки в шаблоне? Просто используйте get_header(). Если нужен отличный от основного файл шапки, создайте другой, например header-two.php с нужным кодом и вызывайте его в шаблоне: get_header( 'two' )

t31os t31os
23 дек. 2011 г. 14:25:48

О! Не знал, что можно использовать две шапки. Это круто. Спасибо за совет.

user766607 user766607
27 дек. 2011 г. 16:35:57
Показать остальные 1 комментариев
Все ответы на вопрос 1
1
23

Поскольку вы находитесь на странице, которая будет отображать только запрос для этой страницы. Вам нужно создать новый запрос, чтобы получить нужные записи. Замените ваш цикл на этот:

<?php
    $args = array(
        'post_type' => 'post' // Тип записи - посты
    );

    $post_query = new WP_Query($args); // Создаем новый запрос

    if($post_query->have_posts() ) { // Если есть посты
        while($post_query->have_posts() ) { // Цикл по постам
            $post_query->the_post();
            ?>
            <h2><?php the_title(); ?></h2> // Выводим заголовок поста
            <?php
            }
        }
?>

Дополнительная информация о запросе: http://codex.wordpress.org/Class_Reference/WP_Query

23 дек. 2011 г. 00:25:38
Комментарии

В конце следует сбросить запрос с помощью wp_reset_postdata(); https://codex.wordpress.org/Function_Reference/wp_reset_query

jjj jjj
18 мар. 2017 г. 18:00:17