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

Дата: 04.12.2007 | Рубрика: Статьи

Для вывода записей в 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 год

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


37 комментариев

  • 2008-12-19 в 21:29 tpoxa написал:

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

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

    Про ошибки я давно знаю, но исправлять пока не собираюсь.
  • 2009-01-19 в 00: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 постов. как мне от этого избавиться? Простите, если сумбурно. Помогите, пожалуйста
  • 2009-01-21 в 11:37 Admin написал:

    Напиши мне свою аську через форму обратной связи, разберемся.
  • 2009-01-21 в 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 не стала работать :(
  • 2009-01-21 в 11:59 Admin написал:

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

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

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

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

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

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

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

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

    хм. а нет ли такой функци только не для рубрики, а для тэга?
  • 2009-07-23 в 07:30 Admin написал:

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

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

    По идее должны и кириллицей, попробуй.
  • 2009-07-23 в 16:53 uii написал:

    ок. спасибобольшое 8)
  • 2009-08-13 в 17:11 curt написал:

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

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

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

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

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

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

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

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

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

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

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

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

    373970660
  • 2010-01-25 в 15:13 Admin написал:

    В аську стукнул - молчок.
  • 2010-02-02 в 15:00 Андрей написал:

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

    Некро-ответ для Сергея :)
    query_posts('orderby=rand&showposts=5');
    5 - количество постов
  • 2010-08-23 в 01:24 VRS написал:

    Может быть подскажете, как сделать с помощью этой функции в КАТЕГОРИЯХ вывод закрепленной записи первой, затем остальные простые? пробовала плагин "вп-стики", но что-то у меня он не пошел .. версия 2.9.2
  • 2010-08-23 в 08:35 Admin написал:

    А что если сделать два цикла ?
    Сначала только закрепленные, а потом все остальные, кроме закрепленных ?
  • 2010-08-23 в 13:41 VRS написал:

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

    have_posts()) : $my_query-&gt;the_post();
    $do_not_duplicate[] = $post-&gt;ID ?&gt;

    //дальше вывод поста



    ID, $do_not_duplicate)) continue;
    update_post_caches($posts); ?&gt;

    //опять вывод поста



    Код выводит прикрепленные записи первыми, исключает из второго цикла.. но закрепленные посты выводятся из ВСЕХ категорий, а нужно только из той, которую посетитель просматривает.... а прикрутить ID категории не получается.. Может Вы подскажите как?
  • 2010-08-24 в 08:29 Admin написал:

    http://codex.wordpress.org/Function_Reference/get_the_category
  • 2013-01-29 в 15:04 Евгений написал:

    Помогите пожалуйста с проблемой. Уже третий день мучаюсь. Ни как настроить сортировку не могу...

    Есть функция: ссылка на неё http://ark-it.ru/func.txt

    Всё в ней работает, кроме сортировке по цене. Поле cost_1 подразумевает дополнительное поле с цифрами (ценами), например 1,3,2

    Нужно чтобы при выборе сортировки было так: 1,2,3

    Выручайте =(
  • 2013-02-19 в 22:41 Юля написал:

    У меня на главной выводит все записи сайта, а в настройках выставила 6. Стоит плагин WP Page Numbers. Другие плагины ставила, все равно все записи выводит. Как исправить? Помигите!!!!

Вы должны войти, чтобы оставить комментарий!