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

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

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

Как в WP получить путь к каталогу темы

Апрель 14, 2023 г.

Wordpress реализует целое семейство параметров, которые можно использовать в шаблоне. В том числе и переменные, указывающие путь к файлам темы. Разбираемся в нюансах. Ключевых переменных тут две: [crayon-66a447091d934229110790/] В чем их ...

Читать

Найти элемент по его классу в HTML на чистом js

Май 4, 2020 г.

Немного ванильного js, на этот раз: как найти контейнер по указанному классу. Сразу рассмотрим более сложный пример, когда требуется найти элемент с классом .class-child внутри элемента .class-parent. В DOM мы используем функцию element.getElementsByClassName(CLASSNAME), ...

Читать

 

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