Вывод записей из одной категории

Вывод записей из одной категории

Сегодня столкнулся с очередной проблемой WordPress. Нужно было оставить в качестве главной статическую страницу, а посты выводить по категориям, каждая на отдельной странице. Делается это очень легко.

В первую очередь мы сделаем главную страницу статической. Создаём обычную страницу через средства WordPress, заходим в «Инструменты -> Чтение», и ставим отображать на главной статическую страницу, ту самую, которую мы только что создали.

В качестве страницы записей выбираем другую страницу, которую необходимо предварительно создать. Пускай это будет «Софт». Тут мы сразу же можем увидеть запись про дефрагментатор и другие программы.

Теперь сделаем так, чтобы на странице «Софт» выводились только посты из рубрики «Софт». Открываем файл index.php из папки вашего шаблона (он лежит в wp-content/themes/%ваша тема%/). Находим строчку <?php if (have_posts()) : while (have_posts()) : the_post(); ?>. Перед этой строчкой вставляем  следующий код: <?php query_posts(«cat=x»); ?>, где «Х» — ID категории.

Как узнать ID категории? Нажимаем в админке на пункт «Рубрики», находим нужную нам категорию в списке, нажимаем «Изменить». Смотрим в адресную строку браузера и видим в конце ID=x, где «х» и есть искомая цифра. Подставляем ее в код выше. Допустим, это цифра «3».

В итоге у нас должна получиться такая конструкция:

<?php query_posts(«cat=3»); ?>

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

 

 

Теперь создадим под каждую рубрику отдельную страницу и на каждой странице будем выводить новую рубрику.

Создаём рубрику «Новости Бреста». Смотрим какой ID ей присвоен. Допустим это будет «4».

Теперь нам нужно создать новый шаблон страницы. Создаём новый файл, назовём его brest.php. Теперь полностью копируем содержимое файла index.php, и вставляем его в свежесозданный. Как вы уже догадались, нужно заменить цифру «3» из кода выше на «4». Теперь нужно сообщить WordPress, что это шаблон. В самом начале файла вставляем следующий код: <?php /* Template Name: Brest */ ?>, где «Brest» — названием шаблона. Делайте его запоминающимся, чтобы потом всё не перепутать.

Всё, шаблон страницы готов, заливаем его на фтп в папку с темой.

Создаём новую страницу. Задаем нужный заголовок, в нашем случае это «Новости Бреста». Тело страницы оставляем пустым, зато сбоку у нас появился пункт «Шаблон». Выбираем «Brest». Сохраняемся и радуемся. Теперь все посты из категории «Новости Бреста» выводятся на одноименной странице.

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

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

 

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

Июл 7, 2010

Что-то у вас фраза два раза написана по разному, и оба раза неправильно. Там одинарные кавычки должны быть. А за информацию спасибо, только начинаю WordPress юзать, полезняшка однозначно.

Авг 17, 2010

Большой тебе респект! )))) всё встало как надо

Сен 13, 2010

большое спасибо за статью, но у меня появилась большая проблема, после вставки этого кода перестаёт работать сортировка по тегам..

Сен 23, 2010

Спасибо за статью! Очень помогло. Еще интересует как поставить определённое количество статей на странице.

Окт 6, 2010

А при этом способе прокрутка страниц работать будет если у меня много постов в одной категории.
Сейчас она не работает. При переходе на «Старые записи» или «Новые записи» — картина одна и таже, только последние посты показывает.

Окт 16, 2010

А можно ли как нибудь сделать так чтобы помимо вывода содержимого одной из рубрик выводилось и содержимое страницы (приветствие или что то наподобие)??

Дек 17, 2010

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

Дек 17, 2010

А в чем проблема? У подрубрики тоже есть свой ID, который и вписываете в нужное место в коде.

Дек 17, 2010

спасибо!

Фев 23, 2011

Мне тоже надо было такое реализовать. Действительно, все работает. Только я подумал: неужели, если будет 20 категорий, то надо будет 20 одинаковых файлов создавать?! Неет! Так в программировании не делается. Поэтому я придумал свой вариант, может и не самый лучший, но зато рабочий. В файл pages.php добавляю такой код:
if ($page_id==19){
query_posts(«cat=3»);
}elseif ($page_id==29){
query_posts(«cat=1»);
}
и т.д., сколько там категорий. Зато все в одном месте и в одном файле, и никаких заморочек.

Фев 23, 2011

Отлично)

Мар 28, 2011

Спасибо большое за полезную информацию.

А может подскажете еще, как можно сделать вывод не целых постов одной категории, а вывод только заголовков этих постов? И возможно еще как их в алфавитном порядке расположить.

Мар 29, 2011

В общем, после долгих мучений и возможно не лучшим образом, но проблема решена. Так что предыдущий вопрос уже не актуален.

Апр 19, 2011

Не могу разобраться с размещением предложеннго кода. Если у меня в page.php код:

В каком месте необходимо поместить конструкцию типа:

if ($page_id==19){
query_posts(«cat=3″);
}elseif ($page_id==29){
query_posts(«cat=1″);
}

Заранее спасибо

Апр 19, 2011

Не могу разобраться с размещением предложеннго кода. Если у меня в page.php код:

В каком месте необходимо поместить конструкцию типа:

if ($page_id==19){
query_posts(«cat=3″);
}elseif ($page_id==29){
query_posts(«cat=1″);
}

Заранее спасибо

Сен 6, 2011

Спасибо, вроде бы помог.

Сен 8, 2011

А вот как сделать, если у меня есть страница к примеры «тырыпыры», и есть рубрика «траливали», и вот мне надо без манипуляций с кодом, просто при редактировании страницы в редакторе, в админке, вставить туда рубрику «траливали» Есть такая возможность? Спасибо!

Янв 16, 2012

Мой вопрос может быть немножко не по теме…У меня есть сайт мойсайт.com и есть блог на blooger мойсайт.blogger.com. Как мне вывести новости или заголовки статей с блога на sidebar fo my website? Решаю эту проблему уже который день…ПЛИЗ ХЕЛП!!!!!

Фев 18, 2012

Люди спрашивают и мне нужно: объясните куда вставлять код, плиз:
if ($page_id==19){
query_posts(«cat=3″);
}elseif ($page_id==29){
query_posts(«cat=1″);
}

Фев 20, 2012

Туда же, куда и описано в статье.
Только по своему опыту советую не использовать данный способ. У меня, например, возникла масса проблем после этого.
Гораздо удобнее использовать редирект на страницу категорий:
«Template-Redirect – редирект с использованием шаблона страницы, т.е. чтобы сделать редирект на определенной странице Вы устанавливаете для неё специальный шаблон, а в теле страницы пишете ссылку (можно относительную).»

Апр 8, 2012

у меня в index.php нет ..шаблон mystique.. где искать это?

Сен 21, 2012

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

Сен 30, 2012

А скажите пожалуйста, как сделать так, чтоб на главной в статичной странице сначала была какая-нить информация(например таблица), а ниже уже шли посты из категории какой-нить..например новости…
Заранее большое спасибо!

Ноя 20, 2012

Постраничная навигация при таком способе не работает! Объясните, как быть????

Дек 21, 2012

———-Постраничная навигация при таком способе не работает! Объясните, как быть????»——-

Интересует тот же вопрос.
Статя отличная спасибо, все описано более чем подробно.

Дек 23, 2012

Джентльмены.
Боюсь ошибиться, но, кажется, постраничную навигацию мне удалось решить с помощью плагина WP Page Numbers.

Фев 22, 2013

все отлично заработало большой сенкс

Мар 15, 2013

Спасибо большое!

Апр 29, 2013

Спасибо за это необходимую инфу! В своё время сталкивался с этой проблемой.

Ноя 28, 2013

Спасибо за занимательную статью-очень помогла в работе.

Наши спонсоры

Счетчики