Почему WP_Query('showposts=5') показывает только 1 запись?

10 февр. 2013 г., 06:55:35
Просмотры: 22.6K
Голосов: 1

Я пытаюсь сделать простой запрос, чтобы получить последние 5 записей в неупорядоченный список, но показывается только 1 результат, хотя у меня есть несколько записей. Я даже попробовал сделать смещение, но показывается следующая запись, и всё равно только 1 результат. Что я делаю не так?

<ul>
    <?php $the_query = new WP_Query('showposts=5'); ?>
    <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
        <li>
            <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
            <p><?php the_content_limit(250); ?></p>
        </li>
    <?php endwhile;?>
</ul>
4
Комментарии

Я новичок в этой области и хочу использовать этот код на своем сайте, но я не знаю, где именно его применить. Пожалуйста, помогите. Спасибо.

User User
12 янв. 2015 г. 10:39:01

Пожалуйста, не задавайте вопросы в разделе ответов.

cybmeta cybmeta
12 янв. 2015 г. 10:58:41

Это не является ответом на вопрос. Чтобы оставить критическое замечание или запросить уточнение у автора, оставьте комментарий под его публикацией — вы всегда можете комментировать свои собственные публикации, а когда наберете достаточное количество репутации, сможете комментировать любые публикации.

birgire birgire
12 янв. 2015 г. 11:23:59

Для контекста ответ @sammy был преобразован в комментарий, я сохранил ответы для удобства sammy, кстати, добро пожаловать в сообщество :)

Tom J Nowell Tom J Nowell
12 янв. 2015 г. 11:39:36
Все ответы на вопрос 2
1

the_content_limit не существует в WordPress. Скорее всего, вам нужна функция the_excerpt.

Вероятно, ваш цикл работает нормально, но вызов неопределённой функции вызывает ошибку, из-за чего кажется, что цикл не работает. Посмотрите на сгенерированный HTML: вы, скорее всего, увидите один открывающий тег <li>, ссылку и открывающий тег абзаца.

showposts также устарел. Ознакомьтесь в кодексе: удалён в версии 2.1

Попробуйте так:

<?php
$query = new WP_Query(array(
    'posts_per_page'   => 5,
));

while ($query->have_posts()): $query->the_post(); ?>
    <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <p><?php the_excerpt(); ?></p>
    </li>
<?php endwhile;
10 февр. 2013 г. 07:12:11
Комментарии

Вот что бывает, когда копируешь и вставляешь из интернета. Спасибо за обновление! Теперь всё работает!!

TruMan1 TruMan1
10 февр. 2013 г. 07:17:30
4
-2

Стандартный синтаксис для post_per_page выглядит так:

<?php
      $query = new WP_Query
      (array(
                 'posts_per_page'   => 5, // Количество выводимых записей
             )
       );

       while ($query->have_posts()): $query->the_post(); ?>
      <li>
          <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
          <p><?php the_excerpt(); ?></p>
     </li>
<?php endwhile;
23 янв. 2015 г. 12:54:22
Комментарии

showposts был заменён на posts_per_page. Пожалуйста, прочитайте принятый ответ

Pieter Goosen Pieter Goosen
23 янв. 2015 г. 12:57:57

хорошо.. но в моём случае showposts тоже работал.

Mayank Kushwaha Mayank Kushwaha
1 апр. 2015 г. 13:04:30

Да, работает, но он устарел и может быть удалён в будущем, что сломает ваш сайт

Pieter Goosen Pieter Goosen
1 апр. 2015 г. 13:06:33

Пожалуйста, перечитайте мой комментарий, не используйте showposts, он устарел

Pieter Goosen Pieter Goosen
1 апр. 2015 г. 13:08:43