Archive for November, 2009

Самые комментируемые и случайные посты в 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!

Где найти дополнительное время для работы и отдыха?

Saturday, 28 Nov 09 в 2:11

Приветствую всех, я – Иван Воробьев, автор блога inbloging.com, где публикую статьи на темы интернет-маркетинга, продвижения, социальных сетей.

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

Дайте угадаю, прежде чем начать работать со своим блогом или же другими сайтами, на которых строится Ваш доход, Вы сначала заходите в rss-ридер, читаете обновления всех тех блогов, на которые подписаны, а количество их обычно далеко переваливает за десяток. После этого можно зайти на почту посмотреть, не пришли очередные письма тех рассылок, на которые Вы подписаны. Если Вы достаточно популярны в Интернете, то большое количество времени уйдет на написание ответов на письма Ваших читателей/клиентов. Что, с почтой справились? Теперь самое время зайти на свои любимые форумы и посмотреть, что там нового, можно даже принять участие в очередном бессмысленном унижении новичка, задавшего ну, очень глупый вопрос. Бессмысленно, но очень даже весело. Теперь время twitter’а, чтение которого при большом подписном листе может продолжаться довольно долго. Потом вдруг оживет аська, а, зайдя в Вконтакте, Вы обнаруживаете входящее сообщение, и совершенно случайно человек, написавший Вам, сейчас находится в он-лайне, и беседа с ним пройдет не за пять минут. А когда Вы наконец-таки справитесь с этими поистине важными делами, окажется, что прошло пол дня, а дел Вы никаких не сделали.  Да, и, правда, часов в сутках маловато.

Внизу я приведу некую инструкции, по выполнении которой можно обнаружить в своем распоряжении немало дополнительного времени.

Rss-ридер

Зайдите в свой Rss-ридер, выберите 2-3 блога, которые реально интересны и полезны, а остальные просто-напросто удалите из списка. Я уверен, что большинство блогов у Вас на одну тему, и большинство авторов пишут про одни и те же вещи, только разными словами и в разное время. Так зачем тратить на них свои ценные минуты? Выберите тех, кто наиболее интересно и часто пишет, освещая все события в своей нише.

Twitter

Здесь, я советую удалить всех тех, отсутствие которых не сыграет особой роли в вашей жизни. Ах,  они удалят Вас в ответ? так зачем, простите, они вообще нужны, только ради красивой цифры?  Единственное, что я допускаю, это продолжать “следить”  за несколькими интересными личностями, например, теми блогерами, которые уже добились успеха в вашей нише. Их будет интересно почитать, да и время от времени можно поддержать с ними беседу, ибо такие знакомства не помешают, но тратить на это нужно не более 10-20 минут в день. Также у меня есть группа в твиттере, в которую я добавил, во-первых, микроблоги Яндекса и Гугла, во-вторых, какой-то новостной блог.

E-mail

Для начала отпишитесь от всех рассылок, оставив максимум 1-2, для них Вы можете завести отдельную почту, которую будете проверять не чаще раза в месяц. Если Вам каждый день приходят горы писем от читателей, то пора завести специального человека, который стал бы все эти письма читать и на них отвечать. Думаю, за те сэкономленные часы Вы сможете с лихвой окупить эту трату. Возьмите за привычку проверять почту 1-2 раза в неделю, этого будет достаточно, ничего сверхъестественного за это время не случится.

ICQ

Забудьте про него. Не нужно его даже включать, использовать следует только, если Вам нужно срочно с кем-то связаться и почтой вопрос не решить. Уж тем более не нужно совмещать дружеские и рабочие контакты в одной аське.

Форумы

Лично я пользуюсь только одним форумом: searchengines.ru и то, только в том случае, если надо найти какого-нибудь исполнителя. Т.е. заглядываю я только в рубрику “Работа для веб-мастера” и мне этого хватает. Остальное, мне кажется, только бессмысленно отнимает время. Я также зарегистрирован на других веб-мастерских форумах, но использую их только для того, чтобы публиковать записи в рубрику «дайджест».

Просмотр новостей

И немного об оф-лайне. Просмотр новостей – это конечно важное занятие, но не стоит ему уделять слишком много времени, пора перестать смотреть новости по телевизору. В пункте “Twitter” я специально посоветовал Вам добавить в списки новостной микроблог. Вот что будет Вам сообщать о последних новостях мира. Возьмите за привычку, только вечером просматривать этот микроблог. Не стоит читать все новости, хватит только беглого взгляда по заголовкам – в них часто содержится основная информация. Если какая-то новость заинтересовала Вас, то перейдите по ссылке и просмотрите основные факты, все так же не вдаваясь в ненужные подробности. Это вполне заменит Вам просмотра телевизионных новостей и сэкономит Ваше время.

micriToDo

В одной из своих статей я уже писал про этот замечательный скрипт, который заменит все сложные и многофункциональные todo-листы. Записывайте все задания, которые надо выполнить, дабы не забыть об этом. Как только в голову приходит мысль, что нужно выполнить какую-то задачу, сразу же запишите ее.

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

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

  • Rss-ридер – согласен, что количество лент нужно сократить к минимуму, все читать вы не будете успевать, а читать важные посты нужно чтобы быть «в теме».
  • Twitter – фолловить только тех, кто вам интересен и с кем будете общаться, не гонитесь за цифрами – Иван, правильно подметил.
  • E-mail – я против передачи функции «чтения почты» третьим лицам – все-таки там может содержаться конфиденциальная информация, а письма с «общими темами» приходят не так часто, чтобы кого-то нанимать для их чтения.
  • ICQ – пункт сложный, с одной стороны на него уходит много времени, с другой – я помогаю многим советами и консультациями именно через IM – сложно сказать какой из этого толк, может, плюс в карму:)
  • Форумы – нужно четко, наверное, разделять общение в форумах «по работе» и просто времяпровождения с развлекательными целями.
  • Просмотр новостей – признаюсь это моя проблема, часто захожу на одни и те же сайты чтобы проверить что там нового в футболе, ИТ и просто новостях. С этим нужно бороться:)
  • micriToDo – организация дел с помощью сторонних программ – штука полезная, я и сам в блоге советовал удобный планировщик задач todoist.

Если говорить в общем, то вариант Ивана я бы охарактеризовал как «ограничить количество воспринимаемой информации, оставив только полезную». Лично я не против такого подхода, но больше склоняюсь к принципу «ограничить и выделить конкретное время на восприятие информации». Например, у вас рабочий день с 9.00 до 18.00 – читаем новости утром, в обед и после работы, общаемся на форумах для развлечения, социальных сетях – тоже в свободное время. При этом во время работы максимально оградить себя от отвлекающих нюансов – icq, twitter, почта, выделяя для них отдельные периоды времени по типу проверять почту утром и вечером, отвечая на все письма за раз, а не тратя для этого по 10-15 минут каждый час. Собственно, об этом я уже как-то писал в блоге, поэтому также читаем статьи способы повышения эффективности (часть1) и методы улучшения эффективности работы (часть2).

Думаю эти 2 поста, вместе с данной статьей дадут некоторую пищу для размышлений или стимул для действий :) Вообще, как уже сказал выше, хотелось бы в комментариях немного обсудить эту тему – кто что делает для правильной организации времени?

P.S. Постовой. Недавно мой блог попал в BlogAnons – каталог и описание блогов.
Купите свое девушке качественные духи ведущих европейских брендов.
Загляните также в интернет-магазин различной аудио и видео техники.

Понравился пост? Подпишись на обновления блога по 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!
Страница 1 из 512345