Последние посты и комментарии блога, популярные статьи
В процессе работы с системой для блогов wordpress я сталкивался с разными ситуациями и заданиями. Некоторые моменты хотелось бы сегодня рассмотреть, речь пойдет о готовых решения (хаках) для системы, которые позволяют выводить списки сообщений по определенному признаку. Сюда, например, я бы отнес последние посты блога, последние комментарии, самые популярные, комментируемые или случайные посты. Эти списки могут использоваться по двум причинам – во-первых, для поисковиков получите что-то вроде дополнительной внутренней перелинковки. Во-вторых, для читателей, которые впервые попали на ваш блог, будет полезно для его оценки взглянуть на некоторые статьи проекта (допустим, самые популярные). В общем, вещи не то чтобы крайне важные, но весьма полезные для любого блога. Чтобы узнать, как такое добавить к себе на проект, читаем дальше.
Последние посты (статьи) блога
Для вывода последних сообщений блога используется функция wp_get_archives. Теоретически она, вроде как, больше предназначается для архивов блога, тем не менее, может выводить последние сообщения. Для этого в шаблон добавляем код:
<ul> <?php wp_get_archives('type=postbypost&limit=10&format=html'); ?> </ul> |
В функции wp_get_archives есть несколько параметров:
- type – тип отображаемого списка (по месяцам, года, а также postbypost – сообщение за сообщением).
- limit – количество записей.
- format — формат вывода, html выводит в виде списка с тегами <li>.
- before, after – код (текст), что выводится до записи и после нее, если вы указали формат custom, то есть можно свое оформление задать какое-то.
- show_post_count – переменная типа boolean, если True (1) – выводит количество постов для записи из архива месяца, года и т.п. (кроме типа postbypost).
- echo – если = 1, то выводит результат вывода функции.
Последние комментарии, лучшие комментаторы в блоге
Выводить на страницах последние комментарии, в принципе, можно лишь для того чтобы как-то стимулировать аудиторию для дальнейших обсуждений. Есть еще списки лучших комментаторов, где используются ссылки на их блог – чтобы народе туда переходил. Просто последние комментарии, наверное, скорее имиджевый характер и элемент дружелюбного дизайна блога. В принципе, для вывода последних комментариев есть как виджеты в wordpress, так и плагины специальные. Я привык делать все максимально прозрачно и на базовом уровне – то есть в шаблоне. Используем для этого следующий код:
<?php global $wpdb; $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10"; $comments = $wpdb->get_results($sql); $output = $pre_HTML; $output .= "\n<ul>"; foreach ($comments as $comment) { $output .= "\n<li>".strip_tags($comment->comment_author) .":" . "<a href=\"" . get_permalink($comment->ID)."#comment-" . $comment->comment_ID . "\" title=\"on ".$comment->post_title . "\">" . strip_tags($comment->com_excerpt)."</a></li>"; } $output .= "\n</ul>"; $output .= $post_HTML; echo $output; ?> |
В sql запросе указывается количество считываемых сообщений – LIMIT 10, которое можно изменять как захотите. Кроме того, в части кода SUBSTRING(comment_content,1,30) цифра 30 отвечает за количество отображаемых символов в тексте комментария пользователя. Формат вывода – список ul, вы можете его подправить, если внимательно посмотрите на переменную $output. По умолчанию с помощью данного кода получите вывод ника посетителя, после чего ставится двоеточие и краткий текст комментария, что ссылается на его полную версию.
Как вывести лучших комментаторов я не знаю на 100%, так как с этим не сталкивался, вот лишь могу посоветовать использовать либо специальный виджет для wordpres Top Commentators Widget либо плагин Show Top Commentators. Судя по всему, это самые популярные решения для данной задачи.
Самые популярные посты в блоге
Этим летом в блоге я рассматривал еще одну интересную задачу – вывод популярных постов WP-PostViews – с тех пор, в принципе, ничего не изменилось, можете использовать этот плагин. Также он может помочь вывести и самые непопулярные статьи блога чтобы читатели больше на них заходили – либо те, в свою очередь, больше светились в поисковиках. Получится что-то вроде «вечного двигателя» — малопосещаемые посты всегда на виду, за что получают дополнительные переходы, после чего на их место приходят другие непопулярные посты и т.д. Кроме того, можно выводить статьи (популярные и ли нет) по одному из тегов либо для определенной категории. В общем, рекомендую.
Еще для решения задачи вывода самых популярных постов я бы посоветовал обратить внимание на плагин Popularity Contest. Если я все правильно понял по описанию, то он подходит к этому вопросу более комлексно. Поскольку считает не только просмотры статей, категорий или архива, а использует некоторые другие параметры для определения популярности постов — как, например, количество комментариев, трекбеков и т.п.В общем, все зависит от целей и результатов, что вы хотите получить – выбирайте между этим двумя решениями.
К вышесказанному хочу добавить 2 замечания. Все упомянутые функции имеют подробное описание на официальном сайте wordpress – заходим, читаем, просвещаемся. Как правило, всякие там параметры функций могут дать нам весьма интересные результаты, поэтому там есть что почитать. Во-вторых, некоторые задачи можно решить разными способами – например, выводить последние сообщения можно и не через специальную функцию, а используя запрос WP_Query. В данном посте я опубликовал те решения, которые видел, знаю, а также использую в некоторых своих блогах. Надеюсь, пост вам поможет – даже если вы не наши конкретных ответов на свои вопросы, то, по крайней мере, узнаете в каком направлении следует вести поиски. В следующий раз я расскажу о еще двух интересных задачах.
P.S. Постовой. Наш интернет магазин предлагает духи ведущих европейских брендов.
Если вы еще не знаете, то нетбуки asus eee pc — самые лучшие в мире нетбуки! Сам собирался такой покупать для работы и веб-серфинга в дороге.
Вывод последних постов блога был уже в шаблоне по умолчанию, выводом последних комментариев не пользуюсь, а вот топ комментаторов да. Popularity Contest — очень широконастраиваемый и удобный плагин. Мне он с самого начала понравился
Популярные статьи таким образом я считаю не целесообразно выводить. Вообще самые популярные статьи должны быть самыми качественными и интересными, поэтому их можно вывести ручками на какой-нибудь заметной части блога, а не использовать плагины, которые замедляют работу и без того не быстрого wordpress :)
Слушайте, как находить сайты у кого стоит плагин «последние комментарии»?
Здравствуйте! Подскажите, пожалуйста, как можно вывести в сайтбаре перечень заглавий всех постов. Не архивов, а именно постов. Пробовал через цикл (оставлял the_title() без the_content()), только при клике по какому-либо посту, вместо списка остается один — выбранный.
Что делать? Заранее, благодарю!
Сергей, посмотрите статью список последних сообщений выбранной категории — там есть похожая информация, которую вы ищете.
Спасибо саня…. Топ комментаторов я думаю будет лишним на блоге а вот за вывод последних сообщений спасибо… либо плохо искал либо только у тебя об этом и написано.
Интересный материал столько разных плагинов для wordpress создано, а вот что бы в первые позиции выйти по прежнему работы остаётся не горюй…
подскажите как в последних новстях вывести время публикации
Oleg, обычной функцией не вывести дату, можно попробовать другой код, подробнее об этом здесь — список последних сообщений выбранной категории.
Самый большой плюс плагина Hyper Cach это, конечно, его простота настройки – даже новичок сможет установить и подключить кэширование. Он может легко «подружиться» с другими плагинами без вредя для сайта, совместим, например, с wp-pda для мобильных устройств, или с плагином Global Translator и т.п. Поддерживается кэширование для редиректов, 404 страниц, rss фида, можно использовать компрессию страниц gzip, есть специальная система авто очистки дабы минимизировать место занимаемое на диске.
Слушайте, как находить сайты у кого стоит плагин “последние комментарии…
demon177, когда-то давно об этом читал, но сейчас уже не вспомню — поищите информацию в гугле об этом, в блогах писали о таком виде «прогона».
Хорошая статья спасибо, а вот за вывод последних комментарий не знал.
Как находить, как находить? берешь яндекс и находишь
Подскажите, как выводить комментарии по дате их одобрения? Все эти решения выводят по дате их добавления. К примеру, я отвечаю на вопросы раз в неделю (такая специфика сайта) и получается, что я одобряю комменатрии, потом начинаю на них отвечать и в итоге список только из моих ответ :-(
Дмирий, к сожалению, я такого решения не встречал. Дабы это все не выглядело как список ваших комментариев, можно теоретически включить «древовидные комментарии» — типа вы будете отвечать конкретному пользователю и все будет смотреться логично.
В настройках системы в разделе Параметры — Обсуждение есть пункт «Разрешить древовидные (вложенные)». Главное чтобы шаблон это поддерживал. Если не поддерживает, то можно попытаться их подключить самому — как сказано здесь или, возможно, установить Disqus.
Да, спасибо, я это понял, когда заглянул в базу данных. Там нет поля, в котором бы отмечалось время одобрения комментария. Благодарю за советы по решению проблемы.
Как находить, как находить? берешь яндекс и находишь +++
Именно так, а когда разжевывают — это временная помощь….. Завтра снова нужно будет кому-нибудь новый вопрос расжевывать :)