Несколько примеров использования query_posts() (04.12.2007)

Автор: Admin | Рубрика: Статьи

Для вывода записей в WordPress используется цикл, называемый “The Loop”. В общем виде он выглядит вот так:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php endwhile; ?>

Если перед циклом The LOOP написать функцию query_posts() с параметрами, приведенными ниже, то можно изменить вывод постов и страниц на ваше усмотрение.

query_posts(”cat=-3″) - Не показывать категорию с id=3

query_posts(”cat=-1,-2,-3″) - Не показывать категории, id которых равны 1, 2 и 3

 query_posts(’cat=2,6,17′) - Вывести категории с id равным 2, 6 и 17

query_posts(’category_name=Staff Home’) - Вывести категорию с названием “Staff Home”

query_posts(’name=first post’) - Вывести один пост с названием “first post”

query_posts(’p=5′) - Вывести один пост, id которого равно 5

query_posts(’p=5′); global $more; $more = 0; - Вывести только первую часть (до тега more) поста с id=5

query_posts(’page_id=7′) - Вывести страницу с id=7

query_posts(’pagename=about’) - Вывести страницу с названием “about”

query_posts(’cat=18&showposts=5′) - Вывести 5 постов из категории с id=18

query_posts(’cat=3&orderby=date&order=ASC’) - Вывести посты из категории с id=3, сортировать по дате в хронологическом порядке(DESC - в обратном порядке)

query_posts(’posts_per_page=10‘) - Вывести 10 постов на страницу (при значении -1 выводит все посты)

query_posts(’cat=3&year=2007′) - Вывести посты из категории с id=3 за 2007 год

Мой блог находят по следующим фразам

Забобрить эту страницу!

Последние темы:
- Темный шаблон для Wordpress в стиле техно
- Spectrum - шикарная тема для Wordpress на русском языке
- Ultima - Минималистичная и симпатичная тема для Wordpress
- Новая простая Wordpress тема Notepad
- Новая Wordpress тема - Argentpress

Комментарии (30)

  • tpoxa // Дек 19, 2008 at 21:29 пп

    Спасибо.
    Очень полезно особенно там где вывод до тега more.

    P.S.
    Вам не говорили что правильно темы пишутся как "themes"
    + Ошибка в форме комментов.
    Что такое название? Возможно имя?
  • Admin // Дек 20, 2008 at 13:32 пп

    Про ошибки я давно знаю, но исправлять пока не собираюсь.
  • Олег // Янв 19, 2009 at 0:29 дп

    Подскажите, пожалуйста. Как мне поправить ошибку. В header.php я вызываю констукцию:


    query_posts('posts_per_page=-1&amp;cat='.the_category_ID(false));

    if (have_posts()) :
    while (have_posts()) : the_post();
    /* выбираю некоторые значения из дополнительных полей всех записей из рубрики, провожу некий расчёт */
    endwhile;
    else :
    endif;

    query_posts('posts_per_page=10&amp;cat='.the_category_ID(false));

    При переходе по постраничному навигатору каждый раз грузятся первые 10 постов. как мне от этого избавиться? Простите, если сумбурно. Помогите, пожалуйста
  • Admin // Янв 21, 2009 at 11:37 дп

    Напиши мне свою аську через форму обратной связи, разберемся.
  • Олег // Янв 21, 2009 at 11:47 дп

    Уже победил. Вот такой код:
    $numpost=10;
    if($paged&gt;1) $offset=$numpost*($paged-1);
    else $offset=0;//чтобы знать, с какой статьи начать, если это не первая страница
    query_posts('&amp;offset='.$offset.'&amp;showposts='.$numpost.'&amp;posts_per_page=10&amp;cat='.the_category_ID(false));

    Почему-то query_strings не стала работать :(
  • Admin // Янв 21, 2009 at 11:59 дп

    Ну и хорошо, что разобрался сам.
  • Олег // Янв 21, 2009 at 12:03 пп

    Да, но погемороиться пришлось много :) Надо было изначально на get_posts() делать. Но уже слишком много переписывать :(
  • Tanё4ek // Янв 22, 2009 at 11:44 дп

    не могу найти где в wp 2.6.5 смотреть id постов/страниц? подскажите, плиз)
  • Admin // Янв 22, 2009 at 11:56 дп

    В админпанели -> управление, наводим курсор на нужный нам пост/страницу/категорию и смотрим ссылку.
    Пример: http://ваш_блог/wp-admin/post.php?action=edit&post=242 где 242 и есть нужный Вам id.
  • Tanё4ek // Янв 22, 2009 at 12:08 пп

    хм... спасибо))) правда не очень удобно, верней совсем не удобно. В wp2.3.3 было лучше:( а какого-нибудь плагина для этого случайно нет?
  • Олег // Янв 22, 2009 at 12:44 пп

    Tanё4ek, а чем вам не удобно? Навели, посмотрели и всё :) Зачем плагины городить?
  • Tanё4ek // Янв 22, 2009 at 12:58 пп

    когда id отдельным столбцом - наглядней. Н-р, видно какие категории/страницы exclude/include куда-нить... удобней и привычней... ну что ж делать, буду привыкать по url)))))
  • Сергей // Мар 20, 2009 at 23:47 пп

    А как с помощью этой конструкции сделать случайный вывод записи?
  • uii // Июл 23, 2009 at 0:20 дп

    хм. а нет ли такой функци только не для рубрики, а для тэга?
  • Admin // Июл 23, 2009 at 7:30 дп

    Для работы с тегами его можно использовать так : <strong>query_posts('tag=bread,baking');
    </strong> Т.е. по аналогии с категориями.
  • uii // Июл 23, 2009 at 16:43 пп

    ок. спасибо 8)
    а теги обязательно должны быть латиницей или кирилицей тоже будут работать?
  • Admin // Июл 23, 2009 at 16:48 пп

    По идее должны и кириллицей, попробуй.
  • uii // Июл 23, 2009 at 16:53 пп

    ок. спасибобольшое 8)
  • curt // Авг 13, 2009 at 17:11 пп

    парни... сделал пагинацию как описано в коментах...
    произошел косяк с плагином wp-pagenavi... теперь он не переключается... на какой бы странице не находился в пагинации... плагин показывает что я на первой... ссылка на первую страницу не активна ну и вернуться на первую страницу по ней нельзя... все пропало :(
    кто то разбирался с такой проблемой? подскажите решение...
  • Admin // Авг 13, 2009 at 18:33 пп

    А каким образом ты её сделал ?
    Пиши через форму обратной связи свою аську, спишемся, помогу настроить.
  • curt // Авг 13, 2009 at 18:51 пп

    короче придумал костыль...
    передаю плагину wp-pagenavi номер страницы через global

    60 global $wpdb, $wp_query, $paged1;
    64 $paged = intval($paged1);

    а в шаблоне вычисляю номер страницы пагинации
    $paged1 = $offset / $numpost + 1;
  • curt // Авг 13, 2009 at 18:54 пп

    это мы правили wp-pagenavi.php

    чего то изменить свой комментарий не получилось... запостил... а он не изменился
  • Admin // Авг 13, 2009 at 21:10 пп

    Все просто, это wordpress firewall блочит коммент, т.к. считает запрос потенциально опасным.
  • Иван // Янв 25, 2010 at 12:13 пп

    Я новичок в работе с ВП
    Подскажите как на главную вывести статьи из определенных рубрик . Есть вспомогательные статьи , присутствие которых будет лишним на главной
  • Admin // Янв 25, 2010 at 12:17 пп

    А может тогда проще исключить некоторые рубрики ?
  • Иван // Янв 25, 2010 at 12:33 пп

    Можно и так - эффект будет одинаков . Конечно при условии что исключенные из показа на главной рубрики останутся видны как рубрики .
    Как такое возможно ?
  • Admin // Янв 25, 2010 at 12:36 пп

    Через форму обратной связи пишите номер аськи, так проще общаться.
  • Иван // Янв 25, 2010 at 12:43 пп

    373970660
  • Admin // Янв 25, 2010 at 15:13 пп

    В аську стукнул - молчок.
  • Андрей // Фев 2, 2010 at 15:00 пп

    Есть один вопрос, а как вывести через php в определённую область сайта название (только название без ссылок и т.д.) какого либо поста, определённой рубрики и определённого порядка, ну сначала последний пост потом предпоследний и т.д., если что моя icq-9303358.

Буду признателен, если Вы оставите
упоминание об этом блоге у себя на сайте.


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