Список последних сообщений выбранной категории
Я тут на днях совершил просто грандиозную авантюру и запустил новый проект про чемпионату мира по футболу 2010 в ЮАР, который сегодня, кстати, двумя матчами и стартует. Точнее как запустил, купил домен, заказал тексты, а потом подумал, что это все была не совсем хорошая идея. Но пути назад, как говорится, уже не было – пришлось в срочном порядке устанавливать wordpress, подключать модули, шаблоны, занимается множеством правок и добавлений пока я не наконец то не получил более-менее нормальный продукт. И тут, кстати, у меня возникла одна небольшая задачка, которую сейчас предлагаю рассмотреть.
Из-за чемпионата мира в ЮАР целый месяц большая часть мужского населения планеты будет торчать у телевизоров или в барах. Конечно, для них я и создал свой блог дабы можно было не только почитать всякие обзоры пропущенных поединков, но и активно пообсуждать происходящее на футбольных полях. Так вот на сайте есть 2 «глобальных» категории для постов – новости чемпионата мира 2010 по футболу и «все остальные» (обзоры, дополнительная инфа и т.п.). Задача заключалась в том чтобы вывести список последних публикаций (сообщений) по каждому из направлений (категории).
Начнем решение издалека. В обычных случаях для вывода списка последних сообщений можно использовать одну из вариаций функции архивов wp_get_archives. Подробнее об этом можно почитать в статье про последние посты блога. Если говорить вкратце, то для вывода используем следующий код:
<ul> <?php wp_get_archives('type=postbypost&limit=10&format=html'); ?> </ul>
Но при этом нет никакой возможности указать категории для постов, которые хотелось бы выводить. В таком случае нужно вспомнить один из недавних постов, где я рассказывал о WP_Query – функции запроса к базе данных. Можете поискать информацию о ней и параметрах использования на официальном сайте, я лишь приведу пример нужного кода для вывода последних сообщений из выбранной категории:
<ul> <?php $recent = new WP_Query("cat=1&showposts=10"); while($recent->have_posts()) : $recent->the_post();?> <li><a href="<?php the_permalink() ?>" > <?php the_title(); ?> </a></li> <?php endwhile; ?> </ul>
За подсказку спасибо автору этой статьи. Здесь в запросе WP_Query используется, во-первых, переменная cat, которая указывает номер выбранной категории, а во-вторых, переменная showposts, что задает количество выводимых постов. Точнее мы получаем набор постов в цикле loop, для которых выводим заголовки через функцию the_title().
Если вам не совсем понятны данные рассуждения, не страшно, просто добавляете код в файл сайдбара sidebar.php и смотрите на результат. Кстати, можно еще добавить, что если указать параметр cat=-1, то указанная категория будет исключаться из списка. Таким образом для решения задачи мы создаем 2 блока с запросом WP_Query, в одном из которых выводим блок новостей (категория = 1), а во втором его исключаем. Вот так оказывается все просто!
P.S. Постовой. Интересная и полезная информация про iPad в Украине – обзоры, новости и разные статьи.
Любителей головоломок заинтересуют логические флеш игры на сайте онлайн игр.
Если вам вдруг нужны психологи в Екатеринбурге – вы запросто можете заказать консультацию психолога.
Комментариев - 14 к статье “Список последних сообщений выбранной категории”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Плагин Lightbox Plus – улучшенный эффект для изображений
- Скрываем custom fields для не админов, функция remove_meta_box()
- Видеокурс WordPress Security по защите блога на WordPress
- Плагины смайликов в wordpress блоге
- Обновление WordPress подробно для начинающих
- Лишние ссылки с WordPress прочь
- Вставка PHP кода в WordPress через виджеты
- Безопасность (3)
- Видео (5)
- Возможности (53)
- Начинающим (16)
- Новости (19)
- Оптимизация (12)
- Плагины (61)
- Сервисы (10)
- Хаки и секреты (39)
- Шаблоны (13)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог






(6,08 из 7, голосов - 12) - Оптимизируем WordPress header и удаляем лишние элементы






(4,85 из 7, голосов - 13) - 17 полезных приемов и хаков для WordPress






(5,60 из 7, голосов - 10) - Использование скрипта Lightbox 2 в WordPress блоге без плагина






(5,88 из 7, голосов - 8) - Изображения (миниатюры) для связных постов в Simple Tags






(4,70 из 7, голосов - 10) - Как добавить дополнительные кнопки в редактор WordPress






(5,25 из 7, голосов - 8) - Добавление контента (текста, html кода и рекламы) в RSS блога






(4,75 из 7, голосов - 8)
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Хакеры из Франции отомстили за закрытие Megaupload
- Facebook зарабатывает порядка 1 миллиарда долларов
- Mobile Mouse для работы с Mac компьютером
- Сотрудникам Apple пообещали существенные скидки на продукцию компании
- Митинг против принятия закона SOPA
- Конкурс фильмов открывает YouTube
- В Android Market появился «вышибала»


Оцените статью:
Категории:
Теги:
Хотелось бы отметить, что все таки WP_Query это не функция, а класс. Простите за назойливость – режет «слух» программисткий такие высказывания )
Огромное спасибо! Весь интернет обшарил, чтобы найти и реализовать эту возможность. Перепробовал разные плагины, например news ticker, но он выводит анимировано, что мне не понравилось. Поставил код и заработало, теперь выводятся новости, но есть одно но – если убирать новости с главной, то они не будут выводиться в сайдбаре через этот код, как бы реализовать возможность вывода постов в сайдбаре с категории, которая не транслируется на главной?
Здравствуйте. Отличная вещь, очень полезная!
Но у меня возникла проблема: почему-то при попытке вставить перед этим заголовок в тегах H2, либо после этого текст в любых тегах p, div, span, li и т.п., текст отображается квадратиками. Т.е. получается, что нормальным шрифтом отображаются только заголовки постов, взятые с помощью функции php, а все тексты введенные вручную не отображются нормально.
Как это можно решить??
Буду благодарна за ответ. :)
Спасибо, я уже нашла! У меня почему-то файл sidebar.php был не в кодировке utf8, а в заподноевропейской….
шаблон для WordPress с нуля – урок 4 (выводим список категорий).
http://all-kompyuters.ru/houm/post/33
Спасибо, Саша! Полезная статья. Понадобиться для моего блога, хочу запустить новую рубрику «Новости экономики»
Дмитрий Лебедь, не за что, для вывода новостей данный хак хорошо подходит)
Важная информаци, попробую применить с своём новом блоге.
как сделать вывод популярных новостей определенной категории только в этой категории?
nemetc, можно поставить плагин WP-PostRatings для оценивания постов и там уже в коде делать условные выборки – если категория1, то отображаем популярные посты для нее.
Скажите, а есть смысл делать такие сайты под кратковременный трафик, как ЧМ2010?
И хотелось бы чтобы комментарии можно было оставлять не вводя каждый раз заново имя, емейл и сайт(если уже комментировал другую статью сегодня). Можно и написать об этом статью.
andrew87, если говорить о заработке с трафика, то, конечно, после завершения турнира его объемы ушли полностью, но подобные события позволяют словить много трафика, когда они проходят. А дальше можно использовать проект для заработка на биржах ссылок что, в принципе, тоже неплохо.
в блоке который в примере как отсортировать статьи по дате?
Oleg, для сортировке по дате нужно добавить параметры orderby и order в WP_Query, что-то вроде:
Это не код, который нужно вставить на сайт, а пример, откуда берем orderby и order.