Wordpress: вывод на главной постов определённой категории | CMS глазами пользователя

WordPress: вывод на главной постов определённой категории

В категории Wordpress

вывод на главной постов определённой категорииЗадача:  вывести на главной странице сайта на wordpress  посты только одной (или нескольких? или исключить одну?) категории. Можно использовать плагин, например Advanced Category Excluder

Я не мог использовать плагин по ряду причин.

Например, если вы исключите этим плагином все кроме одной категории, а потом другим плагином поставите в сайдбаре ссылки на нужные посты исключённых категорий то они не появятся, т.к. исключены.


У меня сработал такой метод:
в файле index.php вашей темы оформления ищем
код

<?php if (have_posts()) : ?>

и перед ним добавляем такой код:

<?php if (is_home()) { query_posts($query_string.'&cat=920&showposts=5'); } ?>

где 920 — ID категории, посты из которой вы хотите вывести.

По идее (я не проверял) должны работать и такие конструкции:

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=WordPress’) — Вывести категорию с названием “WordPress”;
query_posts(‘name=Hello World’) — Вывести один пост с названием “Hello World”;
query_posts(‘p=5′) — Вывести один пост, 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=2008′) — Вывести посты из категории с id=3 за 2008 год;
query_posts(‘orderby=rand&showposts=3&cat=3′) — выводин рандомно, т.е. случайно 3 записи из 3 категории;
query_posts(‘orderby=rand&showposts=3′) — выводит случайно 3 записи из всех категорий;
query_posts(‘meta_key=cars&meta_value=volvo’) — выводит список постов с произвольным полем “cars” и значением этого поля volvo.
Информация о примерах использования query_posts взята с сайта http://www.wp-info.ru/

Будьте осторожны, если не до конца уверены в том что делаете ;)

Upd. Спасибо Snov за дополнение о том, что код из примера выше не работает с плагином WP-PageNavi, чтобы и плагин и метод работали, нужно использовать другой код. Смотрите в комментах.

Если этот пост помог вам, вы можете помочь ему:

Опубликовал admin  25.11.2010
Отзывов: 36

Комментарии
Дек 30, 2010
14:38
#1 Sibluder :

Хм. Надо попробовать.

[Ответить]

admin

конечно надо! получилось очень прилично у меня на одном сайтике)

[Ответить]

Янв 6, 2011
11:10
#2 Seventh :

Вот спасибо тебе, дружище. Это-то я и искал битый час

[Ответить]

admin

:) я даже больше искал

[Ответить]

Янв 23, 2011
16:07

Спасибо. Получилось даже у меня.

[Ответить]

admin

@Константин, рад что работает не только у меня)

[Ответить]

Янв 25, 2011
7:03
#4 snov :

При использовании плагина WP-PageNavi переходы по страницам перестают работать)

Чтобы исправить надо использовать конструкцию типа

где переменная $query_string обязательна

[Ответить]

snov

@snov, <?php if (is_home()) { query_posts($query_string.’&cat=1&showposts=3′); } ?>

вот так

[Ответить]

admin

@snov, спасибо! не тестировал на совместимость с другими плагинами, наверняка и другие конфликты есть! заодно после вашего коммента прикрутил возможность вставки кода, проверю сейчас

<?php if (is_home()) { query_posts($query_string.'&cat=1&showposts=3'); } ?>

[Ответить]

Июн 1, 2011
13:32

Хочу на главной сделать таблицу, и по ячейкам разбить категории, и что бы в ячейках отображались последние записи каждой категории, как мне это сделать? У меня при добавлении этих строк к index.php в строках



ничего не выходит

[Ответить]

admin

@Seul Voyageur, не помогу, увы, я сам не знаток

[Ответить]

Июл 5, 2011
11:54
#6 Zalmat :

Спасибо, очень пригодилось :)

[Ответить]

Июл 6, 2011
11:35

Спасибо автору за код) Был полезен при разработке очередного сайта)

[Ответить]

admin

@qstudio.manager, рад помочь ;)

[Ответить]

Июл 10, 2011
6:50
#8 Лайт :

ЗАРАБОООООТАЛО!!!!!!!!!!!!!!!!!!!!!! ))))))))))

[Ответить]

Авг 14, 2011
20:34
#9 book :

а с плагином Page Number Themes как правильно сделать

[Ответить]

Окт 28, 2011
14:17

Люди, помогите, пожалуйста. Я уже не знаю куда спрашивать. Нужен php-код, который будет делать ссылку на следующий пост в ЗАДАННОЙ категории… Еще бы неплохо с проверкой, есть ли следующий пост в этой категории. Собственно, в той-же, в которой и пост, на котором будет стоять этот код… (во завернул :) ) Но известный параметр in_same_cat — не подходит… У категорий есть структура. in_same_cat — отображает ссылки на посты в родительской, а мне нужно в дочерней…

[Ответить]

Ноя 4, 2011
20:52

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

[Ответить]

Дек 17, 2011
1:22
#12 Andre :

хм … так просто … а я со всякими плагинами @бался пол дня …автору огромное спасибо … прикручу на свои доры эту фишку )))))

[Ответить]

Дек 17, 2011
22:31
#13 Joliat :

А как вывести 5 постов с разных категорий, зная только их id?

[Ответить]

Дек 23, 2011
16:17

Спасибо за дельный совет. Работает. Но загвоздка: вставил этот код в колонку, где хотел бы, чтоб отображались посты нескольких категорий. Первая отображается, последующие — нет. ID категорий проставлены правильно.

[Ответить]

Янв 8, 2012
15:08
#15 Roman :

у меня так и не сработало(
пытаюсь вывести на индекс.пхп все посты целиком без ката, всего в базе 3 штуки… все равно он режет их, добавляя линку «read the rest of this entry…» . уже голову сломал, и полностью перенёс содержимое single.php на индекс, оставив только цикл

[Ответить]

snov

@Roman, Замените из файлов index.php и archive.php метод вывода c the_excerpt() на the_content() и будет щастье)))
ну и не забудьте в статьях вырезать тэг

[Ответить]

Фев 15, 2012
20:41
#16 snov :

admin, кстати если будешь ставить не strip_tags, а просто менять символы «<" на "&gt" и обратные, то люди смогут видеть код)

[Ответить]

admin

@snov, я так понял это конструктивное замечание) а где это делать?

[Ответить]

Фев 24, 2012
14:05
#17 Олег :

Спасибо, чувак! Хоть у меня в index.php всё было чуток не так, но мысль этот пост направил в нужное русло и помог с нужными мне параметрами в query_posts. Кстати на в «Моём мире» на mail.ru не удалось поделиться ссылочкой чё то.

[Ответить]

Мар 12, 2012
17:54
#18 Zhanna :

Спасибо! очень помогло))) Но на одном сайте у меня статическая страница входа, а записи перенесены на другую страницу и если я вписываю этот код в index.php он не работает (а если записи выводятся на главной, как обычно все работает) Есть выход???

[Ответить]

Мар 18, 2012
15:26

Скажите пожалуйста, как вывести статическую страницу и сразу после нее ниже одну запись:
Сделал так, но не работает (выводит только запись):

 

[Ответить]

Мар 18, 2012
15:26
#20 Евгений :
Мар 18, 2012
15:27
#21 Евгений :

почемуто код не добавился, вот еще :

[Ответить]

Апр 7, 2012
14:02
#22 Никола :

В закладки! Особенно понадобились дополнительные вещи, которые Вы не проверяли :) Работают.

[Ответить]

Апр 15, 2012
21:54
#23 SlaviO :

А как вывести весь список категорий и постов в них? То есть типа сайтмэпа, только это для менюшки нужно.

[Ответить]

Апр 16, 2012
20:47
#24 Kemal :

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

[Ответить]

Апр 16, 2012
21:11
#25 Kemal :

Кстати, не мешало бы сказать, что для отображения заданного в настройках чтения wordpress «posts_per_page» количества записей на странице, достаточно убрать совсем «showposts=n».

[Ответить]

Апр 17, 2012
5:14
#26 Timur :

При использовании плагина WP-PageNavi переходы по страницам так и не работают, кроме того, они и не работают без использования плагина. Код использовал

[Ответить]

Май 7, 2012
21:15

pagenavi навигация по страницам не работает с этой функцией. Будем искать дальше.

[Ответить]

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

Предыдущий пост
«
Следующий пост
»


EXULT designed by ZENVERSE  |  In conjunction with Reseller Hosting from the #1 Web Hosting Provider - HostNexus.