WordPress с самого начала позволяет задать определенную иерархию записей в вашем блоге с помощью рубрик. Не секрет, что возможности wordpress далеко уходят за пределы возможности создать просто блог. И сейчас мы рассмотрим типовую ситуацию, которую можно назвать «ситуация с новостями».
Итак, вводная. У нас есть сайт какой то коммерческой компании и заказчик хочет, чтобы на его сайте была лента новостей. При этом, лент по сути две — это новости компании и отраслевые новости, которые копируются у какого либо информ-агентства с соблюдением всех копирайтов при перепечатке. На главной мы хотим видеть только отраслевые новости, а где-нибудь там, в глубинах страницы «о компании», только новости компании.
Шаг первый: выведем на главной статьи только нужной рубрики. Для начала создадим эти рубрики (сategories) в разделе записи в админ-панели сайта. Для определенности, для отраслевых новостей оставим рубрику «Новости» с яклыком «news», а для новостей компании создадим новую рубрику — «Новости компании» с ярлыком — «company-news». Якрык — это подходящее в качестве части url название, которое нам пригодится далее.
На странице админ-панели /wp-admin/options-reading.php (настройки чтения) у нас уже изначально указано, что на главной мы хотим видеть наши последние новости. Но вот какие? Раз в админ панели нет нужного ключа — смотрим в шаблоны темы. Нас интересует файл index.php, который отвечает за вывод шаблона главной страницы.
В нем вы наверняка увидите что то вроде такого кода:
1 2 3 4 5 |
... <div><?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> ...</div> |
Это начало цикла вывода записей. Прямо перед ним вставим всего одну инструкцию на php.
1 2 3 |
... query_posts('category_name=news'); ... |
Задав параметр category_name, равный ярлыку отраслевых новостей, мы ограничим вывод только отраслевыми новостями на главной странице.
Второй шаг: выведем на нужной странице другую рубрику. Он более тернистый. Сейчас нам нужно создать отдельный раздел для ленты новостей компании. На самом деле у каждой рубрики wordpress есть свой уникальный адрес, и если вы не меняли настройки на странице /wp-admin/options-permalink.php, то новости компании будет показаны по адресу — /categories/company-news. Но нам нужно включить этот адрес в ветку меню О компании -> Новости компании. Если не вы не используете дополнительные модули, которые позволяют конструировать произвольное меню, то снова придется обратиться к шаблонам используемой темы.
Существует определенный порядок выбора шаблона в wordpress. Для страниц отображение идет по следующему пути:
- custom_template — где custom_template, это имя файла заданное в списке «Шаблон страницы» при редактировании данной страницы. Если там не появляется нужный шаблон, то смотрите статью как добавить шаблон в список шаблонов. Если шаблон не отображается в списке, то смотрите как добавить файл в список шаблонов.
- page-{slug}.php — где slug, это ярлык (часть url), заданная для страницы в редакторе.
- page-{id}.php — если id нашей страницы с новостями компани — 60, то WordPress будет пытаться найти шаблон page-60.php.
- page.php
- index.php
Эту информацию я взял из официального источника и любезно перевел её для вас. :) Нам нужно сделать следующее:
- скопировать index.php, например, с именем page-company-news.php;
- в редакторе для страницы «новости компании» установить имя шаблона (page-company-news.php);
- а в новом шаблоне page-company-news.php поменять category_name=news на category_name=company-news
Мне кажется, что такая инструкция, поможет даже тем, кто с php не дружит.
Интуитивный уровень понимания php — это же просто вершина мастерства :)
Вообще, стоит поискать какой то плагин, решающий данную задачу. Решение этой задачи очень востребовано, думаю уже реализовано кем то. Лично я не люблю засорять проекты лишними плагинами, пользуюсь некоторым опытом в php, дописываю что мне нужно в проекте. Этот путь, конечно, не всегда всем подходит.
Возможно, напишу такой плагин, надо же людям помогать. :)
Здравствуйте!
Спасибо огромное за код и инструкцию — долго ковырялась, нашла только у Вас )
А подскажите пожалуйста, что и где нужно вставить, чтобы анонсы статей на странице выводились с картинкой, как например, вот здесь fusotrucks.ru ( в самом низу есть вывод новостей ) — заголовок, картинка, текст.
Заранее спасибо! =)
Для WP можно поискать соответствующую тему оформления, которая позволяет так подавать материалы. Путей два — найти тему, которая позволит подать материалы требуемым способом, либо запрограммировать собственный шаблон.
admin, спасибо!
У меня News One, старая тема, понимаю, но поменять уже не могу.
Возможно, вам окажется полезной вот эта статья у меня же на сайте — http://shra.ru/2013/08/vyvod-anonsov-statejj-s-kartinkojj-v-wordpress . Она так и называется — «Вывод анонсов статей с картинкой».
Оказывается -все гениальное просто!) Спасибо огромное) Я все никак не могла на страницу (не главную) вывести анонсы рубрики (или рубрик). Перерыла интернет, куча решений, но почему-то они вставали криво, мне не нравилось. А теперь все получилось! Спасибо огромное!)) Просто вставила код в новый шаблон и все ок!))
Не нашел подобного кода, вернее схож чем-то, но не идентичен. Не рискнул добавлять.
У вас может быть уникальный шаблон, и код выглядеть совершенно по другому. Но если вы видите цикл вывода публикаций с функцией the_post(), то можете применять метод, описанный в статье.
Спасибо БРО! То что надо.