Список последних сообщений выбранной категории
Я тут на днях совершил просто грандиозную авантюру и запустил новый проект про футбольный ЧМ 2010, который сегодня, кстати, двумя матчами и стартует. Точнее как запустил, купил домен, заказал тексты, а потом подумал, что это все была не совсем хорошая идея. Но пути назад, как говорится, уже не было – пришлось в срочном порядке устанавливать wordpress, подключать спортивный плагин LeagueManager и другие модули, шаблоны, занимается множеством правок и добавлений пока я не наконец то не получил более-менее нормальный продукт. И тут, кстати, у меня возникла одна небольшая задачка, которую сейчас предлагаю рассмотреть.
Из-за чемпионата мира в ЮАР целый месяц большая часть мужского населения планеты будет торчать у телевизоров или в барах. Конечно, для них я и создал свой блог дабы можно было не только почитать всякие обзоры пропущенных поединков, но и активно пообсуждать происходящее на футбольных полях.
Так вот на сайте есть 2 «глобальных» категории для постов – новости и «все остальные» (обзоры, дополнительная инфа и т.п.). Задача заключалась в том чтобы вывести несколько последних публикаций (сообщений) по каждому из направлений (категории). Вручную создавать списки ссылок — немного неправильно, хотя и проще, поэтому пришлось искать другое решение.
Начнем издалека. В обычных случаях для вывода подборки последних записей можно использовать одну из вариаций функции архивов 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().
Обновление 28.06.2018: Если вы не любите копаться в коде, то можно глянуть на модуль Category Posts Widget, добавляющий в систему одноименный видежт. С его помощью допускается создание аналогичных списков по рубрикам.
Если вам не совсем понятны данные рассуждения, не страшно, просто добавляете код в файл сайдбара sidebar.php и смотрите на результат. Кстати, можно еще добавить, что если указать параметр cat=-1, то указанная категория будет исключаться из списка. Таким образом для решения задачи мы создаем 2 блока с запросом WP_Query, в одном из которых выводим блок новостей (категория = 1), а во втором его исключаем. Вот так оказывается все просто!
P.S. Любителей головоломок заинтересуют логические флеш игры на сайте онлайн игр.
Если вам вдруг нужны психологи в Екатеринбурге — вы запросто можете заказать консультацию психолога.
комментариев 16 к статье “Список последних сообщений выбранной категории”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Оптимизируем WordPress header и удаляем лишний код (5,19 из 7, голосов - 43)
- Как создать пункт меню без ссылки в wordpress (6,39 из 7, голосов - 23)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог (6,14 из 7, голосов - 21)
- Выполнение jQuery скриптов при выборе вариаций товаров в WooCommerce (3,96 из 7, голосов - 26)
- Хаки для вариаций товаров в WooCommerce (5,00 из 7, голосов - 20)
- Вывод текста в блоге только на главной (6,85 из 7, голосов - 13)
- Как убрать category в WordPress категориях — зачем это делать, плагины для реализации (5,31 из 7, голосов - 16)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
Хотелось бы отметить, что все таки 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.
Здравствуйте. Спс за пост.
Возникла ошибка на странице при использовании.
При добавлении вашего кода, после него на странице ничего не показывается (простая строка или блок комментариев).
Почему такое может быть?
Надежда, код в вашем комментарии, к сожалению, неправильно вставился. По поводу вашего вопроса — нужно внимательно посмотреть код файла шаблона, где собираетесь вставить список сообщений. Возможно в том месте, куда добавляете его не закрыт блок PHP ?> и получается нарушение структуры файла.
Когда появляется какая-то ошибка, я вставляю код частями. Например, сначала добавляю HTML код — смотрю отображает ли корректно, дальше одну какую-то PHP функцию, например echo. И если все это работает — вставляете готовый кусок кода.