Архив категории: ‘WordPress’

Самые комментируемые и случайные посты в WordPress блоге

Monday, 30 Nov 09 в 17:46

Продолжаем рассмотрение полезных функций для блогов в WordPress. В прошлый раз я рассказывал про последние посты и комментарии блога, популярные статьи. Сегодня будем эту тему развивать – я публиковал подсказки как отображать самые популярные посты по количеству просмотров и некому комплексному показателю, состоящему из нескольких величин. Но, если немного призадуматься, популярность постов может также определять активностью их обсуждения – то есть количеством комментариев, которые оставили посетители блога. Итак, встречайте:

Самые комментируемые посты

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

<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a></li>
<?php } } ?>

Максимум, что можно здесь подправить – количество постов, для этого обратите внимание на строку с текстом  LIMIT 0 , 10 и, собственно, последнюю цифру. Список выводится с помощью тега LI – тут все вроде как стандартно.

Если вам достаточно простого списка самых комментируемых постов, то первый вариант – то, что нужно. Для ищущих гибкость настройки советую обратить внимание на следующий код. Он состоит из двух частей – находите в списке файлов шаблона «функции темы» functions.php и в нем добавляете следующие строки:

<?php function most_popular_posts($no_posts = 5, $before = '<li>', $after = '</li>', $show_pass_post = false, $duration='') {
global $wpdb;
$request = "SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish'";
if(!$show_pass_post) $request .= " AND post_password =''";
if($duration !="") { $request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts";
$posts = $wpdb->get_results($request);
$output = '';
if ($posts) {
foreach ($posts as $post) {
$post_title = stripslashes($post->post_title);
$comment_count = $post->comment_count;
$permalink = get_permalink($post->ID);
$output .= $before . '<a href="' . $permalink . '" title="' . $post_title.'">' . $post_title . '</a> (' . $comment_count.')' . $after;
}
} else {
$output .= $before . "None found" . $after;
}
echo $output;
} ?>

Если functions.php у вас нет, то можно добавить этот код в самый конец файла header.php. Как мы видим в описании функции most_popular_posts есть 5 переменных – no_posts задает количество выводимых постов, before и after определяет окружающие теги для каждой записи (не удивительно, что там задан тег LI), а также show_pass_post, отвечающая, как я понял, за отображение запароленых потов и duration, где вы можете задать количество дней за которые хотите отбирать эти самые комментируемые посты (например, за последний месяц – 31 или любое другое значение).

Чтобы отобразить список самых комментируемый статей вашего блога нужно добавить в требуемое место шаблона вызов функции:

<?php most_popular_posts(); ?>

После этого список должен отобразится в  блоге. Кстати, возле ссылок на посты в скобках будет также указываться количество комментариев.

Случайный (рандомные) посты в блоге

В принципе, для перелинковки в блогах (да и просто сайтах на wordpress) хороши любые методы. Я как-то рассматривал плагин Simple Tags и вывод связных постов по теме для конкретной статьи. Кроме этого можно также выводить и случайные посты для пользователей чтобы они смогли почитать еще некоторые материалы вашего блога. Выборка при этом производится случайным образом (рандомно):

<div id="random">
 <?php $randompost = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY RAND() LIMIT 5"); 
 if ($randompost) {
 foreach ($randompost as $post) { 	
  $ID = $post->ID;
  $postid = get_post($post->ID); 
  $title = $postid->post_title; ?>
 <li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a></li>
 <?php } } ?>
<div class="more"><a href="javascript:location.reload()" target="_self">(показать другие)</a></div>
</div>

За код просьба сильно не ругать, в интернете более-менее адекватного примера я не нашел, пришлось сочинять самому:) В общем, вкратце что сказать по коду – здесь цифра в запросе LIMIT 5 означает количество постов, ее соответственно можно менять. В конце есть блок с ссылкой показать другие, которая перегружает страницы и в блоке рандомных постов пользователь увидит новые случайные ссылки на статьи. В принципе, это не обязательная часть кода, поэтому, если вам не нужна, ее можно убрать.

Вообще, как я уже говорил в прошлой статье по функциям wordpress – для решения тех или иных задач есть разные варианты. Так, например, случайные посты можно выводить с помощью плагина или функции query_posts – тут уж как кому больше нравится. Если внимательно изучить код и структуру (характер) запросов $wpdb->get_results, то можно выводить практически любую информацию из базы данных:)

P.S. Постовой. Купите своей девушке духи от ведущих европейских брендов.
Элитная парфюмерия и духи в Киеве.
Sea container shipment and shipping agency – uni-orient shipping agency ltd.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или RSS для блоггеров и вебмастеровtwitter!

Последние посты и комментарии блога, популярные статьи

Thursday, 26 Nov 09 в 0:07

wordpressВ процессе работы с системой для блогов 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 – самые лучшие в мире нетбуки! Сам собирался такой покупать для работы и веб-серфинга в дороге.
Оригинальные подарки для женщин в Киеве.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или RSS для блоггеров и вебмастеровtwitter!

Яндекс Новости для привлечения трафика, wordress плагин Yandex export feed

Tuesday, 17 Nov 09 в 18:18

Яндекс НовостиВ одном из предыдущих постов я рассказывал о своем новом совместном проекте под названием Банкомёт, публикуется информация про разные платежные системы, электронные деньги и коммерцию. Пока что у меня и партнера, к сожалению, должного времени на продвижение и развитие нет, а инвесторы не спешат на помощь:) Тем не менее, стараемся хотя бы минимальное внимание сайту уделять. В основном, я делаю какие-то правки по функциональности (+ разместил парочку баннеров у себя в блогах). Андрей Майданик занимается наполнением и немного «нестандартным» продвижением. Нестандартность заключается в отсутствии обычных seo-шных закупок ссылок или, например, работы с биржами статей. Если вы зайдете на Банкомёт, то, во-первых, увидите достаточно количество информеров – пробуем обмен трафиком. Я, кстати, в твиттере уже сообщал, что тестирую систему marketgid для Дизайн Мании (вроде ничего так, позже будет отчет о результатах). Прикол в том, что для marketgid требуется минимальная посещаемость от 1000 уников в день. Но сегодня не об этом.

Поскольку в нашем проекте есть определенная доля уникального, я бы даже сказал эксклюзивного, контента (который вы не найдете больше нигде), вполне резонно, что мы решили попробовать привлечь трафик через различные «новостные системы». Это Google News, Яндекс Новости, МЕТА новости и соответствующий раздел на крупном украинском портале Укр.Нет. Пока что получилось работать только с двумя из этих систем – МЕТА приняла наше «творчество» без проблем, посылая взамен некий трафик. В данный конкретный момент разбираемся с настройками Яндекс Новостей. Укр.Нет, на правах крупного игрока, выбирает партнеров самостоятельно и очень тщательно, иногда требуя солидную оплату, как я понимаю:) Для Google News и вовсе обязательным условием является официальная регистрация проекта как СМИ в месте с работающим штатом сотрудников.

yandex news Яндекс Новости

Про систему Яндекс.Новости я хотел бы поговорить подробнее. В партнерской программе для увеличения посещаемости могут участвовать ведущие средства массовой информации (в том числе информационные агентства), печатные и сетевые издания, радио и телевизионные каналы. Но для всех источников есть ряд требования (нюансов):

  • Принимаются как политематические, так и специализированные издания (отраслевые СМИ, тематические сайты).
  • Материалы не должны нарушать действующее российское законодательство – никакого призыва к насилию, выражения ненависти, вражды, оскорблений и угроз и т.п., Также нельзя использовать ненормативную лексику.
  • Материалы могут быть как новостного, так и аналитического характера. Остальное (прогнозы погоды, списки и расписания, сообщения блогов и форумов, анонсы предстоящих событий, реклама, стихи, анекдоты, фельетоны, гороскопы, художественные произведения) – не допускается.
  • Если в экспорт для Яндекс.Новостей попадают дубликаты (перепечатки) сообщений, то они но доступны только на странице издания в базе данных СМИ (то есть не представлены в сюжетах и не участвуют в поиске по сервису). Оригинал определяется по времени публикации, сравнительному анализу текстов и цитированию источника.

Особым требованием к размещаемым новостям является формат экспорта RSS новостей с вашего сайта. Во-первых, принимается только RSS 2.0, во-вторых, Яндекс.Новости требуют строго соответствия своему формату RSS, описание которого вы можете найти в разделе документы своей учетной записи партнера. В частности трансляция новостей должна содержать обязательные элементы каждого сообщения: заголовок, время/дата, URL, полный текст (он используется для индексации, в новостях не размещается). Кроме того, указывается название, адрес и описание самого RSS потока.

Есть также несколько других специфических моментов – как, например, специальные теги <yandex:genre>, <yandex:full-text> – Яндекс любит придумывать что-то кроме стандартных общепринятых форматов как это было с noindex. В общем, суть в том, что стандартный формат экспорта новостей RSS с сайта на WordPress не подойдет.

Плагин для Wordress Yandex export feed

Учитывая проблемы с RSS фидом для Яндекс.Новости, хорошие люди придумали специальный плагин для WordPress под названием Yandex export feed. Он позволяет привести вид и формат экспортируемых новостей в соответствие техническим требованиям сервиса. Плагин позволяет выбрать одну или несколько категорий вашего блога (или новостного проекта), задавать адрес URL ленты, определять количество выводимых постов, ссылку на логотип RSS потока и его описание.

Установка плагина не сложная, но нужно делать все очень внимательно. На странице плагина вы найдете две ссылки для скачивания – для WordPress версии 2.3 и ниже, а также модифицированная версия для WordPress 2.5, 2.6, 2.7. Далее загружаете файл rss_yandex.php в папку /wp-content/plugins/, а wp-rss_yandex.php в корневую директорию вашего сайта. Следующий шаг – активация плагина в админке и настройка соответствующих опций в меню «Настройки» – «Яндекс Лента».

Плагин для Wordress Yandex export feed

В принципе, на картинке все должно быть понятно – указываете ссылку RSS потока, УРЛ картинки, описание и адрес вашего сайта, после чего определяете некоторые параметры фида, а также выбираете категорию новостей, которые будет транслироваться в Яндекс. Сохраняем настройки и связываемся с менеджером системы Яндекс.Новости.

Где-то после Нового Года напишу результаты по трафику, который дает Яндекс.Новости, с МЕТА уже кое-кто переходит. Интересно на какие объемы посетителей можно рассчитывать от Яши:) Может у кого-то есть такая информация?

P.S. Постовой. Элитные духи, парфюмерия в Киеве.
Деревянные лестницы, изготовление лестниц.
Для любителей чая советы приготовления и употребления чая, чай Хайсон.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или RSS для блоггеров и вебмастеровtwitter!
Страница 4 из 151234567...Последняя »