Список последних сообщений выбранной категории
Я тут на днях совершил просто грандиозную авантюру и запустил новый проект про чемпионату мира по футболу 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, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог
- Оптимизируем WordPress header и удаляем лишние элементы
- 17 полезных приемов и хаков для WordPress
- Изображения (миниатюры) для связных постов в Simple Tags
- Использование скрипта Lightbox 2 в WordPress блоге без плагина
- Как добавить дополнительные кнопки в редактор WordPress
- Похожие статьи в wordpress без плагинов с использованием категорий блога
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- Рост доходов корпорации Google
- Наказаны за слухи
- Samsung Galaxy S III не получит беспроводную зарядку до сентября
- В июне Apple представит новые ноутбуки MacBook Pro
- Amazon займется созданием собственных онлайн-телешоу
- Новые банки в системе «Яндекс.Деньги»
- Chrome OS станет похожей на традиционные операционные системы


Оцените статью: 

Категории:
Теги:
Хотелось бы отметить, что все таки 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.