Июн
11
14

Список последних сообщений выбранной категории

последние статьи блогаЯ тут на днях совершил просто грандиозную авантюру и запустил новый проект про чемпионату мира по футболу 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 в Украине – обзоры, новости и разные статьи.
Любителей головоломок заинтересуют логические флеш игры на сайте онлайн игр.
Если вам вдруг нужны психологи в Екатеринбурге – вы запросто можете заказать консультацию психолога.

А еще можно опубликовать статью в своем блоге:
Опубликовать в twitter.com        
рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 1, средний балл: 4,00 из 7)
Loading ... Loading ...

категория Категории: Хаки и секреты;
теги Теги: , , , , , .
Еще интересно почитать:
Заработай на своих сайтах!
Rotaban.ru - биржа банерной рекламы

Комментариев - 14 к статье “Список последних сообщений выбранной категории”

  • Samter   12.06.2010

    Хотелось бы отметить, что все таки WP_Query это не функция, а класс. Простите за назойливость – режет «слух» программисткий такие высказывания )

  • Яков   17.06.2010

    Огромное спасибо! Весь интернет обшарил, чтобы найти и реализовать эту возможность. Перепробовал разные плагины, например news ticker, но он выводит анимировано, что мне не понравилось. Поставил код и заработало, теперь выводятся новости, но есть одно но – если убирать новости с главной, то они не будут выводиться в сайдбаре через этот код, как бы реализовать возможность вывода постов в сайдбаре с категории, которая не транслируется на главной?

  • Наталия   13.11.2010

    Здравствуйте. Отличная вещь, очень полезная!
    Но у меня возникла проблема: почему-то при попытке вставить перед этим заголовок в тегах H2, либо после этого текст в любых тегах p, div, span, li и т.п., текст отображается квадратиками. Т.е. получается, что нормальным шрифтом отображаются только заголовки постов, взятые с помощью функции php, а все тексты введенные вручную не отображются нормально.
    Как это можно решить??

    Буду благодарна за ответ. :)

  • Наталия   13.11.2010

    Спасибо, я уже нашла! У меня почему-то файл sidebar.php был не в кодировке utf8, а в заподноевропейской….

  • Sergey   13.12.2010

    шаблон для WordPress с нуля – урок 4 (выводим список категорий).
    http://all-kompyuters.ru/houm/post/33

  • Дмитрий Лебедь   31.01.2011

    Спасибо, Саша! Полезная статья. Понадобиться для моего блога, хочу запустить новую рубрику «Новости экономики»

  • Tod   31.01.2011

    Дмитрий Лебедь, не за что, для вывода новостей данный хак хорошо подходит)

  • Евгений   04.02.2011

    Важная информаци, попробую применить с своём новом блоге.

  • nemetc   15.02.2011

    как сделать вывод популярных новостей определенной категории только в этой категории?

  • Tod   15.02.2011

    nemetc, можно поставить плагин WP-PostRatings для оценивания постов и там уже в коде делать условные выборки – если категория1, то отображаем популярные посты для нее.

  • andrew87   23.05.2011

    Скажите, а есть смысл делать такие сайты под кратковременный трафик, как ЧМ2010?
    И хотелось бы чтобы комментарии можно было оставлять не вводя каждый раз заново имя, емейл и сайт(если уже комментировал другую статью сегодня). Можно и написать об этом статью.

  • Tod   23.05.2011

    andrew87, если говорить о заработке с трафика, то, конечно, после завершения турнира его объемы ушли полностью, но подобные события позволяют словить много трафика, когда они проходят. А дальше можно использовать проект для заработка на биржах ссылок что, в принципе, тоже неплохо.

  • Oleg   30.06.2011

    в блоке который в примере как отсортировать статьи по дате?

  • Tod   01.07.2011

    Oleg, для сортировке по дате нужно добавить параметры orderby и order в WP_Query, что-то вроде:

    $query = new WP_Query( array ( 'orderby' => 'title', 'order' => 'DESC' ) );

    Это не код, который нужно вставить на сайт, а пример, откуда берем orderby и order.

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Баннер Profit-Partner.ru
Последние посты
 
Полезное
Облако тегов
Лучшее в категории
Клуб читателей блога
Скажи свое мнение!

Где вы берете Wordpress шаблоны?

Посмотреть результаты

Loading ... Loading ...
Друзья проекта
Интернет новости
Последние новости