2мая
2007

Как вывести на главной странице количество записей, отличное от других страниц

В зависимости от того, каким образом Вы желаете представить информацию на своем сайте, работающем на движке WordPress, Вам может понадобиться, например, такая вещь - вывести на главной странице одно количество постов, а на прочих страницах (архив, страницы разделов, поиска и т.д.) - другое.

Нестандартная задача решается стандартными средствами WordPress, путем замены всего пары строчек php-кода в шаблоне. То есть никакие плагины для этого нам не понадобятся.

Итак, например, чтобы на главной странице вывести только один пост, открываем файл шаблона index.php, находим следующие строки (в дефолтном шаблоне находятся в самом верху):

  1. <?php if (have_posts()) : ?>
  2.  
  3.   <?php while (have_posts()) : the_post(); ?>

и смело заменяем их вот таким кодом:

  1. <?php $top_query = new WP_Query('showposts=1'); ?>
  2.   <?php if(have_posts()) : ?>
  3.     <?php while($top_query->have_posts()) : $top_query->the_post(); $first_post = $post->ID; ?>

Здесь в параметре showposts=1 указывается количество выводимых записей.

Вот, собственно, и все.

Теперь лишь осталось в настройках WordPress (Настройки -> Чтение) указать нужное количество постов для отличных от главной страниц сайта.

И, конечно же, ничто не мешает нам, в случае надобности, этот самый код использовать и для любой другой страницы (как отдельно, так и совместно с главной).

Эта запись опубликована в Среда, 02 мая 2007 г. в 02:07 в рубрике Нестандартные задачи. Вы можете получать обновления комментариев к этой записи с помощью RSS 2.0. Также можно оставлять комментарии или trackback с вашего сайта.

автор: Dimox

Комментариев: 9 »

  1. :

    Ну, Америку открыли :)
    Автор: Кодекс Вордпресса вообще-то :)

  2. :

    Я вовсе и не собирался открывать никаких Америк. :))) Боже упаси.
    Просто по ходу работы решил стоящую передо мной задачу, поэтому написал об этом пост, возможно кому-то пригодится.

    По поводу автора вы не правильно поняли.
    В шаблоне блога пока не сделан вывод автора поста (поскольку ранее писал только AlexPro), поэтому я так и подписался ;).

  3. :

    Привет. Сделали все, как написано, только для страницы с архивами... Все замечательно: на главной 1 запись, в архивах 3. Только проблема, когда выбираешь категорию отдельно - все равно три записи выводится, а внутри категории она всего одна (http://www.gim201.info/category/video/). Где подкрутить?

  4. :

    20*1,
    В таком случае нужно использовать следующую запись:

    1. <?php if (is_category()) { ?>
    2. здесь цикл для вывода записей, если это рубрика
    3. <?php } else { ?>
    4. здесь цикл для вывода прочих записей
    5. <?php } ?>
  5. :

    для 2.2.2 такая техника не работает!

  6. :

    iSynth, у меня работает.

  7. :

    вообще странно, на предыдущей версии с этим не было проблем, index.php отсался прежним и в нем как щас есть

    1. <?php if (have_posts()) : ?>
    2. <?php while (have_posts()) : the_post(); ?>

    который меняется на ваш вариант - все равно на главной все посты вываливаются, наверно потому, что в новой версии админки в настройках чтения кто то додумался привинтить Страницы блога
    Показать не более:

    естественно ставишь -1, и на главной происходят такие вещи

  8. :

    Статья простая и понятная как 3 копейки.

    маленький оффтоп -
    у вас в конце каждой статьи есть строчка -
    ХХ комментариев.

    На неё налазят картинки добавления новости во всякие системы при просмотре сайта в ИЕ...

  9. :

    Мне этот пост помог. Я знал что это делается с помощью query, но вот как именно нет. Так что респект автору!

 Оставить комментарий



 

Разрешенные тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>