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

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

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

Иерархия шаблонов в WordPress

Март 23, 2017 г.

Шаблоны в рамках темы Wordpress, как и во многих других CMS, имеют строго определенную иерархию. Что это означает на практике? Когда WP требуется определить ...

Читать

Перелицовка Евы

Октябрь 14, 2012 г.

Очередная перелицовка Евы. Это уже третий по счету дизайн. За одно переехали с wordpress на drupal. На этот раз мы решили сделать сайт, направленный на ...

Читать

 

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

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



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

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

  1. manson:

    Огромное спасибо за информацию. Как раз искал вывод записей на странице только из конкретной рубрики. Вот только тут: «Нас интересует файл index.php, который отвечает за вывод шаблона главной страницы.» На сколько показали мои действия, нужен не index.php, a page.php.

  2. world moder:

    А можно сделать чтобы на странице отображались не только новости но и сам контент страницы, т. е. сделать своего рода гибрид page.php и index.php (home.php)

    • Конечно можно. Сначала стандартный цикл while (have_posts()) поставить в шаблоне, а за ним запрос и цикл нужной категории.

  3. Дюк:

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

    Простите, пожалуйста, объясните этот пункт более детальней.

    Спасибо.

  4. Дюк:

    Спасибо. Все сделал.
    Сайт отличный!

  5. Дюк:

    Скажите, а три новостных ленты таким образом можно сделать?

  6. Дюк:

    Есть, решил. Простите за флуд.

  7. Дюк:

    Добрый день, еще раз.
    Сделал на сайте 3 ленты новостей (разные рубрики).
    Стоит плагин WP-PageNavi.
    Трабл в том, что страницы теперь не листаются.
    Помогите, пожалуйста.

  8. Дюк:

    Решение, может пригодится.
    Для главной ленты:
    Добавил $query_string
    Код:

    Для остальных двух лент:

    Тема обсуждения. Вернее я сам с собой :)

    http://mywordpress.ru/support/viewtopic.php?id=17078

    Спасибо.

  9. svetai:

    А как организовать отображение содержимого рубрик как на вашем сайте? Мне нужно на сайте сделать так, как у вас, например, раздел «Хобби» или «биография». То есть содержимое рубрики — статическая страница, а не список статей этой рубрики.

    • А это не рубрики записей, это страницы. Из страниц в wordpress можно составить иерархическое меню. Есть «штатный» виджет для показа меню из страниц сайта, но я пользуюсь Flexi Pages плагином, он более удобный.

  10. малыш:

    а вот мне не помогла инструкция. у меня тема не совсем обычная там не index а attachment.php(в нем все прописано)и не сработало в стандартной теме пожалуйста ну я только первую половину попробовала все какие нужно категирии вывела кроме той которую ненадо. а вот в рабочей теме никак.
    инструкция хорошая но вот там мне нужно сделать это а мне не помогает а с php я ток на интуитивном уровне