Вывод записей нужной рубрики в wordpress

WordPress с самого начала позволяет задать определенную иерархию записей в вашем блоге с помощью рубрик. Не секрет, что возможности wordpress далеко уходят за пределы возможности создать просто блог. И сейчас мы рассмотрим типовую ситуацию, которую можно назвать «ситуация с новостями».

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

Шаг первый: выведем на главной статьи только нужной рубрики. Для начала создадим эти рубрики (сategories) в разделе записи в админ-панели сайта. Для определенности, для отраслевых новостей оставим рубрику «Новости» с яклыком «news», а для новостей компании создадим новую рубрику — «Новости компании» с ярлыком — «company-news». Якрык — это подходящее в качестве части url название, которое нам пригодится далее.

На странице админ-панели /wp-admin/options-reading.php (настройки чтения) у нас уже изначально указано, что на главной мы хотим видеть наши последние новости. Но вот какие? Раз в админ панели нет нужного ключа — смотрим в шаблоны темы. Нас интересует файл index.php, который отвечает за вывод шаблона главной страницы.

В нем вы наверняка увидите что то вроде такого кода:

Это начало цикла вывода записей. Прямо перед ним вставим всего одну инструкцию на php.

Задав параметр category_name, равный ярлыку отраслевых новостей,  мы ограничим вывод только отраслевыми новостями на главной странице.

Второй шаг: выведем на нужной странице другую рубрику. Он более тернистый. Сейчас нам нужно создать отдельный раздел для ленты новостей компании. На самом деле у каждой рубрики wordpress есть свой уникальный адрес, и если вы не меняли настройки на странице /wp-admin/options-permalink.php, то новости компании будет показаны по адресу — /categories/company-news. Но нам нужно включить этот адрес в ветку меню О компании -> Новости компании. Если не вы не используете дополнительные модули, которые позволяют конструировать произвольное меню, то снова придется обратиться к шаблонам используемой темы.

Существует определенный порядок выбора шаблона в wordpress. Для страниц отображение идет по следующему пути:

  1. custom_template — где custom_template, это имя файла заданное в списке  «Шаблон страницы» при редактировании данной страницы. Если там не появляется  нужный шаблон, то смотрите статью как добавить шаблон в список шаблонов. Если шаблон не отображается в списке, то смотрите как добавить файл в список шаблонов.
  2. page-{slug}.php — где slug, это ярлык (часть url),  заданная для страницы в редакторе.
  3. page-{id}.php — если id нашей страницы с новостями компани — 60,  то WordPress будет пытаться найти шаблон page-60.php.
  4. page.php
  5. index.php

Эту информацию я взял из официального источника и любезно перевел её для вас. :) Нам нужно сделать следующее:

  • скопировать index.php, например, с именем page-company-news.php;
  • в редакторе для страницы «новости компании» установить имя шаблона (page-company-news.php);
  • а в новом шаблоне page-company-news.php поменять category_name=news на category_name=company-news

Мне кажется, что такая инструкция, поможет даже тем, кто с php не дружит.

Написать комментарий

Мало букафф? Читайте есчо !

Когда jQuery.find может не работать

Декабрь 8, 2012 г.

Обычно, "проблема" возникает с данными, получаемыми через асинхронные запросы (ajax-запрос). Вы пытаетесь выполнить jQuery.find() для полученных данных, а функция возвращает пустой объект. В примере ниже, мы пытаемся извлечь содержимое HTML контейнера ...

Читать

Открываем велосезон

Апрель 21, 2013 г.

Апрельская погода вытопила лед в тенистых дворах Екатеринбурга, а коммуналищики взялись за расчистку города. Подсохщий асфальт уже выманил велосипедистов после долгого  зимнего перерыва. Друзья, велосезон-2013 можно считать открытым. :) Велик простоял ...

Читать

 

Комментарии к «Вывод записей нужной рубрики в wordpress»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Вывод записей нужной рубрики в wordpress”

  1. Интуитивный уровень понимания php — это же просто вершина мастерства :)

    Вообще, стоит поискать какой то плагин, решающий данную задачу. Решение этой задачи очень востребовано, думаю уже реализовано кем то. Лично я не люблю засорять проекты лишними плагинами, пользуюсь некоторым опытом в php, дописываю что мне нужно в проекте. Этот путь, конечно, не всегда всем подходит.

    Возможно, напишу такой плагин, надо же людям помогать. :)

  2. Ольга:

    Здравствуйте!
    Спасибо огромное за код и инструкцию — долго ковырялась, нашла только у Вас )
    А подскажите пожалуйста, что и где нужно вставить, чтобы анонсы статей на странице выводились с картинкой, как например, вот здесь fusotrucks.ru ( в самом низу есть вывод новостей ) — заголовок, картинка, текст.

    Заранее спасибо! =)

    • Для WP можно поискать соответствующую тему оформления, которая позволяет так подавать материалы. Путей два — найти тему, которая позволит подать материалы требуемым способом, либо запрограммировать собственный шаблон.

  3. Ольга:

    admin, спасибо!
    У меня News One, старая тема, понимаю, но поменять уже не могу.

  4. Возможно, вам окажется полезной вот эта статья у меня же на сайте — http://shra.ru/2013/08/vyvod-anonsov-statejj-s-kartinkojj-v-wordpress . Она так и называется — «Вывод анонсов статей с картинкой».

  5. Наталья:

    Оказывается -все гениальное просто!) Спасибо огромное) Я все никак не могла на страницу (не главную) вывести анонсы рубрики (или рубрик). Перерыла интернет, куча решений, но почему-то они вставали криво, мне не нравилось. А теперь все получилось! Спасибо огромное!)) Просто вставила код в новый шаблон и все ок!))

  6. Артем:

    Не нашел подобного кода, вернее схож чем-то, но не идентичен. Не рискнул добавлять.

    • У вас может быть уникальный шаблон, и код выглядеть совершенно по другому. Но если вы видите цикл вывода публикаций с функцией the_post(), то можете применять метод, описанный в статье.