Задача: вывести на главной странице сайта на 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, чтобы и плагин и метод работали, нужно использовать другой код. Смотрите в комментах.
При использовании плагина WP-PageNavi переходы по страницам перестают работать)
Чтобы исправить надо использовать конструкцию типа
где переменная $query_string обязательна
[Ответить]
@snov, <?php if (is_home()) { query_posts($query_string.’&cat=1&showposts=3′); } ?>
вот так
[Ответить]
@snov, спасибо! не тестировал на совместимость с другими плагинами, наверняка и другие конфликты есть! заодно после вашего коммента прикрутил возможность вставки кода, проверю сейчас
<?php if (is_home()) { query_posts($query_string.'&cat=1&showposts=3'); } ?>
[Ответить]
Хочу на главной сделать таблицу, и по ячейкам разбить категории, и что бы в ячейках отображались последние записи каждой категории, как мне это сделать? У меня при добавлении этих строк к index.php в строках
ничего не выходит
[Ответить]
Спасибо, очень пригодилось
[Ответить]
ЗАРАБОООООТАЛО!!!!!!!!!!!!!!!!!!!!!! ))))))))))
[Ответить]
Люди, помогите, пожалуйста. Я уже не знаю куда спрашивать. Нужен php-код, который будет делать ссылку на следующий пост в ЗАДАННОЙ категории… Еще бы неплохо с проверкой, есть ли следующий пост в этой категории. Собственно, в той-же, в которой и пост, на котором будет стоять этот код… (во завернул
) Но известный параметр in_same_cat — не подходит… У категорий есть структура. in_same_cat — отображает ссылки на посты в родительской, а мне нужно в дочерней…
[Ответить]
хм … так просто … а я со всякими плагинами @бался пол дня …автору огромное спасибо … прикручу на свои доры эту фишку )))))
[Ответить]
Спасибо за дельный совет. Работает. Но загвоздка: вставил этот код в колонку, где хотел бы, чтоб отображались посты нескольких категорий. Первая отображается, последующие — нет. ID категорий проставлены правильно.
[Ответить]
Спасибо! очень помогло))) Но на одном сайте у меня статическая страница входа, а записи перенесены на другую страницу и если я вписываю этот код в index.php он не работает (а если записи выводятся на главной, как обычно все работает) Есть выход???
[Ответить]
[Ответить]
почемуто код не добавился, вот еще :
[Ответить]
При использовании плагина WP-PageNavi переходы по страницам так и не работают, кроме того, они и не работают без использования плагина. Код использовал
[Ответить]
14:38
Хм. Надо попробовать.
[Ответить]
Январь 13th, 2011 в 16:19
конечно надо! получилось очень прилично у меня на одном сайтике)
[Ответить]