26
Ставим виджеты блога в футер
Категории: (Wordpress, Темы) дата: 26-05-2010
Теги: Wordpress, юзабилити
В последнее время стало очень популярным ставить в футер блога виджеты, которые будут отображать последние записи, или комментари или последние твиты. Но не все темы поддерживают такие функции. У меня отсутствует подобная возможность. Я решил все сделать сам. Я вставлю прямо в код сайта эти виджеты, какие преимущества такой вставки: улучшение юзабилити, уменьшение нагрузки на сервер ( стандартные виджеты и плагины съедают больше ресурсов, чем чистый код), после такого апгрейда тема становится уникальной, что очень важно, как для посетителей так и для поисковиков.
Для большей наглядности рассмотрим все действия на примере моего футера.
Что нам понадобиться: немного знаний дивовой верстки (надо сверстать три столбца) и функции, которые мы будем вставлять в футер. У меня внизу отображаются: последние записи, последние твиты и последние комментарии.
Вот код столбцов, которые вставляются в файл 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, становитесь моим фолоувером в twitter, присоединяйтесь ко мне в friendfeed и facebook. Также, если хотите, Вы можете получать обновления на e-mail:


Спасибо Мастерикс
хорошая статья, а не проще ли в functions.php зарегить еще сайдбаров, а потом просто использовать ф-ю вывода в футере?
Проще, если знаешь как. Но мой способ хорош еще тем, что используется код, который не нагружает сервер, тем самым ускоряет загрузку блога.
А то, что это в самом низу и не все добираются? Хотя мысль, аналогичным образом и в header.php ставить
Мне понравилась статья + согласен с тем, что данный способ не так сильно нагружает сервер как через ф-ю и виджет.