Этот рекламный блок выводится с помощью сервиса AdPlus.io

Ставим виджеты блога в футер


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

Для большей наглядности рассмотрим все действия на примере моего футера.

Что нам понадобиться: немного знаний дивовой верстки (надо сверстать три столбца) и функции, которые мы будем вставлять в футер. У меня внизу отображаются: последние записи, последние твиты и последние комментарии.

Вот код столбцов, которые вставляются в файл footer.php:

<div id="index-footer">

<div id="column-left">вставлять сюда
</div>

<div id="column-right">вставлять сюда
</div>

<div id="column-center">вставлять сюда
</div>

</div>

Вот код, который нужно вставить в файл style.css:

#index-footer {
width:указываем ширину вашего футераpx;
}
#column-left {
float: left;
width: ширина левого столбцаpx;
}
#column-right {
float: right;
width: ширина правого столбцаpx;
}
#column-center {
margin: 0 ширина правого столбцаpx 0 ширина левого столбцаpx;
}

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

<?php
global $post;
$myposts = get_posts('numberposts=количество отображаемых записей');
foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

Вывод последних твитов:

<?php
$feedURL = "вставляем адрес RSS из твитера";
$doc = new DOMDocument();
$doc->load($feedURL);
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
);
array_push($arrFeeds, $itemRSS);
}
$limit = количество сообщений для вывода.;
for($x=0;$x<$limit;$x++) {
$title = str_replace('Ваш логин в твиттере: ', '', $arrFeeds[$x]['title']);
$str = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $title);
$pattern = '/[#|@][^\s]*/';
preg_match_all($pattern, $str, $matches);

foreach($matches[0] as $keyword) {
$keyword = str_replace(")","",$keyword);
$link = str_replace("#","%23",$keyword);
$link = str_replace("@","",$keyword);
if(strstr($keyword,"@")) {
$search = "<a href=\"http://twitter.com/$link\">$keyword</a>";
} else {
$link = urlencode($link);
$search = "<a href=\"http://twitter.com/#search?q=$link\" class=\"grey\">$keyword</a>";
}
$str = str_replace($keyword, $search, $str);
}
echo '<li>'.$str.'</li>';
}
?>

Вывод последних комментариев:

<?php
$pre_HTML ="";
$post_HTML ="";
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=\"К статье - ".$comment->post_title . "\">" . strip_tags($comment->com_excerpt)."</a></li>";
}
$output .= "\n</ul>";
$output .= $post_HTML;
echo $output;
?>

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

Может кто-то знает как по другому выводить комментарии, ато этот способ не самый лучший? Надеюсь вам пригодиться. Если у кого-то есть вопросы — задавайте и не забывайте подписываться по RSS и узнавать больше про то как можно улучшить ваш блог.
Центр компьютерного обучения в Москве — пойди и запишись.

Арчил


26 мая, 2010

6 комментариев

  • Masterix

    26 мая 2010

    😉 Классная статья. Как знающий html человек могу поставить тебе 5 из 5. Продолжай в том же духе!

    Reply
  • Archil

    26 мая 2010

    Спасибо Мастерикс 😀

    Reply
  • Yurbasik

    26 мая 2010

    хорошая статья, а не проще ли в functions.php зарегить еще сайдбаров, а потом просто использовать ф-ю вывода в футере?

    Reply
    • Archil

      26 мая 2010

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

      Reply
  • Андрей

    26 мая 2010

    А то, что это в самом низу и не все добираются? Хотя мысль, аналогичным образом и в header.php ставить 😉

    Reply
  • Громит

    26 мая 2010

    Мне понравилась статья + согласен с тем, что данный способ не так сильно нагружает сервер как через ф-ю и виджет.

    Reply

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