Вывод записей нужной рубрики в 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 не дружит.

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

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

Настройка ЧПУ в CMS

Август 3, 2015 г.

Как я напишу позднее, ЧПУ - один из факторов учитываемых в SEO. А пока как программист подскажу специалистам в SEO, где искать настройки ЧПУ в популярных CMS. Начну с рассказа о двух хорошо мне знакомых CMS, потом буду по мере возможности дополнять ...

Читать

Вертикальное уплотнение списка скриптом

Май 24, 2017 г.

Если вы занимаетесь версткой, то наверное, нередко верстаете элементы списков. Все выглядит красиво, если элементы однородны по ширине-высоте, тогда они ...

Читать

 

Комментарии к «Вывод записей нужной рубрики в 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(), то можете применять метод, описанный в статье.