Гостевые посты. Взаимно увеличиваем популярность блогов

На заре создания этого блога мне в голову пришла идея о том, что в этот блог должен писать не только я один. Свежие мысли других блоггеров благотворно повлияют на развитие этого и не только этого сетевого журнала, подумал я тогда, и решил объявить постоянно действующую акцию, в рамках которой, посторонние авторы могут приходить на «Белую Шляпу» и писать здесь свои статьи. Для того, чтобы это было интересно не только мне, но и тем, кто будет писать в гостях, я дал возможность моим посетителям оставлять в своих статьях любые две ссылки.  Тематику гостевых статей я ограничил тематикой сайта, которую можно определить по названиям рубрик (смотри сайдбар).

Акция “Гостевой пост”. Допускаются любые ссылки!!! «Гостевой пост» – акция продолжается и не собирается заканчиваться

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

С открытием новых проектов, ростом показателей «Белой Шляпы» и разными жизненными перипетиями, акция «Гостевой Пост» как-то заглохла и заметки от моих читателей почти перестали публиковаться.

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

Теперь для того, чтобы вывести последние посты из определенной рубрики, добавив к ним имя автора и его граватар, в файл function.php надо добавить новый код:

/** Последние записи
------------------------------------------------------
$post_num (5) = количество ссылок
$format ('') = {avatar} {author}: {date:j.M.Y} — {a}{title}{/a} ({comments})
$cat ('') = Категории из которых нужно выводить (5,15) или которые нужно исключить (-5, -15), через запятую (одновременно включение и исключение не работает (не имеет смысла) )
$list_tag (li) = Тег списка
*/
function kama_recent_posts ($post_num=5, $format='', $cat='', $list_tag='li', $echo=true){
global $post, $wpdb;

$cur_postID = $post->ID;

if ($cat){
$JOIN = "LEFT JOIN $wpdb->term_relationships rel ON ( p.ID = rel.object_id )
LEFT JOIN $wpdb->term_taxonomy tax ON ( tax.term_taxonomy_id = rel.term_taxonomy_id  ) «;
$DISTINCT = „DISTINCT“;
$AND_taxonomy = „AND tax.taxonomy = 'category'“;
$AND_category = „AND tax.term_id IN ($cat)“;
//Проверка на исключение категорий
if ( strpos ($cat, '-')!==false )
$AND_category = 'AND tax.term_id NOT IN ('. str_replace ( '-','', $cat ) .')';

}
//если нужно показать автора
if ( strpos ($format, '{author}')!==false ){
$JOIN .= „ LEFT JOIN $wpdb->users u ON ( p.post_author = u.ID )“;
$SEL = „, u.user_nicename AS author, u.user_email, u.user_url“;
//если нужно показать аватар (gavatar)
if ( strpos ($format, '{avatar}')!==false )
$av = „<img src='http://www.gravatar.com/avatar/%1\$s?s=40' alt='' />“;
}

$sql = „SELECT $DISTINCT p.ID, post_title, post_date, comment_count, guid $SEL
FROM $wpdb->posts p $JOIN
WHERE post_type = 'post' AND post_status = 'publish' $AND_category $AND_taxonomy
ORDER BY post_date DESC LIMIT $post_num“;
$results = $wpdb->get_results ($sql);

if (!$results)
return false;
preg_match ('@\{date:(.*?)\}@', $format, $date_m);
foreach ($results as $pst){
$x == 'li1' ? $x = 'li2' : $x = 'li1';
if ( (int)$pst->ID == (int)$cur_postID ) $x .= „ current-item“;
$Title = $pst->post_title;
$a = „<a href='“. get_permalink ($pst->ID) . „' title='{$Title}'>“;

if ($format){
$avatar = $av ? sprintf ( $av, md5 ($pst->user_email) ) : '';
$date = apply_filters ('the_time', mysql2date ($date_m[1], $pst->post_date));
$Sformat = str_replace ($date_m[0], $date, $format);
$Sformat = str_replace (
array ('{title}', '{a}', '{/a}', '{author}',   '{comments}',         '{avatar}'),
array ( $Title,    $a,   '</a>',  $pst->author, $pst->comment_count,  $avatar  ),
$Sformat
);
}
else $Sformat = „$a$Title</a>“;
$out .= „\n<$list_tag class='$x'>{$Sformat}</$list_tag>“;
}
if ($echo)
return print $out;
return $out;
}

А функция, которую надо добавить в то место, в котором хочется вывести список будет иметь следующий вид:

<?php kama_recent_posts (5, '{avatar}{author}{a}{title}{/a}({date:j M Y}), {comments}','144');  ?>

где 5 — это количество пунктов, которые надо вывести в список, а 144 — это ID рубрики, из которой надо выбрать посты (его вы должны заменить на свое значение)

Результаты, которые выводит функция можно форматировать в основном стилевом файле style.css или в самой функции, вот так, например:

<?php kama_recent_posts (7, '{avatar} Автор: {a}<span style=»font-size:1.6em;font-color:#c00000;font-weight:900;">{author}</span>{/a} <br/>{a}{title}{/a}<br/>({date:j M Y}), {comments} коммент.','144');  ?>

а вот стили для изображения аватара можно задавать только в файле function.php, иначе браузеры Opera, Google Chrome и Internet Explorer совсем откажутся их показывать. Делается это путем добавления к тегу <img> тега <style>. У меня это сделано вот так:

//если нужно показать автора
if ( strpos ($format, '{author}')!==false ){
$JOIN .= « LEFT JOIN $wpdb->users u ON ( p.post_author = u.ID )»;
$SEL = «, u.user_nicename AS author, u.user_email, u.user_url»;
//если нужно показать аватар (gavatar)
if ( strpos ($format, '{avatar}')!==false )
$av = «<img style='float:left; margin-right:7px; padding:2px; border: 1px solid #c00000;' src='http://www.gravatar.com/avatar/%1\$s?s=40' />»;
}

Обратите внимание на то, что аргументы тега <style>, в данном случае, записываются не в кавычках, а в апострофах.

Для того, чтобы опубликовать гостевой пост, надо написать его в любом текстовом формате и послать на мою электропочту, адрес которой можно взять на странице «Контакты». Если тема вашего поста совпадает с темой моего блога, то я сразу же опубликую вашу статью. В текст статьи вы можете включить любые две ссылки, они не будут закрыты для индексации поисковыми системами. Если в вашей статье будут содержаться уникальные решения, придуманные Вами лично и касающиеся WordPress, WEB, PHP и прочего, что касается сайтостроения, я заплачу вам деньги за ваше творение. Если вы считаете, что ваш текст содержит именно такие уникальные решения, то Сумму Вы можете оговорить заранее.

Добро пожаловать. Давайте продвинем наши блоги вместе с помощью постоянно действующей акции «Гостевые посты»

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

Высылайте Ваши предложения.

Короткая ссылка на этот пост: http://www.eavasi.ru/?p=5793, используйте ее для анонсирования этого поста в Твиттере и других социальных сервисах.

    1. eavasi Автор записи

      Мне тоже понравилось, Тимур! Спасибо тебе и только тебе.

      А ты как насчет гостевого поста? Подумаешь на досуге? Хотя бы маленькую заметочку!!! Просим!

  1. Наблюдатель

    Жень, всё классно, все прикольно. Но... но... но...

    У меня в Opera аватарки не отображаются, вместо них ма-а-аленькие красные квадратики. Нет, я-то и без аватарки переживу... Да и оперой, к твоему большому неудовольствию, не я один пользуюсь.

    Ещё, сунулся писать комментарий, а поля авторизации заполнены от имени Валерия Иванова. Я против Валеры ничего не имею, конечно же, видать он аккурат передо мной тут побывал. Но... Кэш?

    Так что, дерзайте, молодой человек 😉

    Кстати, тоже с успехом использую «фишки» Тимура. Отказался уже от стандартного плага pagenavi. На очереди — его антиспам. Спасибо.

    1. eavasi Автор записи

      И тебе спасибо за подсказки. Постараюсь устранить, правда, пока не знаю как.

    2. eavasi Автор записи

      Это не от Оперы. У меня сегодня ни с того, ни с сего тоже только квадратики вместо фоток. Будем разбираться вечером. Не беспокойся, решим проблему. Квадратики — это тоже красиво.

      Как говорят твои братья мадьяры — НИНЧЕН ПРОБЛЕМАТ!!!

    3. eavasi Автор записи

      ВсЁ! Я отремонтировал, теперь и в Opera видны граватары. Статью исправил. Там небольшие изменения в форматировании тега . Его надо делать прямо в файле function.php. Одним словом перечитайте статью еще раз.

    1. eavasi Автор записи

      Привет посетителю из Твиттера.

      Спасибо за похвалы. Только кроме них, я жду от вас ответа по поводу гостевого поста. Вы же можете!!!

  2. Rai

    Доброго всем времени суток !

    Безгранично благодарна создателю этого сата , всех благ ему !!! Интересный сайт !

    Я чайник !!! ДремучиЙ ! В создании сайтов и всего что к этому относится. !!!! Ниче не соображаю... Прочитала статью про гостевые посты , про раскрутку блогов... одно поняла что это мне все НРА !!! Но не поняла каким образом это все и куда вставлять ?

    А оно может мне пока и не надо ?

    Но живу мечтой что и у меня ( такого дремучего чайника) будет тоже когда-нибудь свой сайт.

    А чем я хуже ? Надо же кому то засорять инет пространство... ибо оно как говорят спецы безгранично ! Вот на деле и проверим! (шутка)

    А то у всех моих друзей , даже у таких ленивцев есть свои сайты. Мне тоже нада !!!

    Недавеча правда мне посоветовали тут из-за бугра мои други, что плохо я сделаю если я на RU зарегистрирую сайт свой. Просят чтоб я на СOM сделала.

    Теперь я в растерянности. Посоветуйте мне плиз, что мне делать ?

    1. eavasi Автор записи

      com или ru решать вам самой, разницы для поисковиков нет.

      В любом случае желаю Вам большой удачи и успехов. У Вас все получится.

    1. eavasi Автор записи

      Тимур, а куда конкретно надо вставить эту строку remove_filter ('the_content','wptexturize'); ?

      1. Kama

        Написал же вроде, правда с ошибкой 🙂 «вставь в functions.php» имел ввиду файл шаблона конечно.

        1. eavasi Автор записи

          Тимур, вставил — ничего не изменилось :- (

          Может как-то не так вставил? Пробовал несколько мест. Эффекта нет. А спустя минуту и вовсе выдало : Error Establishing DB Connection!

Добавить комментарий

Ваш e-mail не будет опубликован.