Плагины для WordPress: есть ли альтернатива?

Создавая блоги на WordPress, я не ставлю на них много плагинов. Но как-то так получается, что со временем плагины размножаются, как кролики весной. Проходит месяц-другой жизни сайта и, кроме необходимого минимума плагинов на блоге появляются плагины для виджетов, дополнительных функций и различных украшательств. Кажется, что все плагины нужны, но со временем они начинают сильно тормозить работу сайта (каждый из них создает дополнительные запросы к базе данных) и конфликтовать между собой.

А использование сторонних модулей на сайте увеличивает риск взлома админки. К тому же приходится постоянно беспокоится о работе устаревших плагинов при обновлении WordPress.

Думаю, эта проблема знакома многим.

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

В этом посте я дам несколько примеров кода, заменяющего плагины.
Начну с плагинов для комментариев.

1. Плагин "Последние комментарии"

Создаем в папке своей темы файл functions.php и вставляем в него следующий код:

<?php
function get_recent_comments($args) {
global $wpdb, $comments, $comment;
extract($args, EXTR_SKIP);
$options = get_option('widget_recent_comments');
$title = empty($options['title']) ? __('<h2>Последние комментарии</h2>'):
apply_filters('widget_title', $options['title']);
if ( !$number = (int) $options['number'] )
$number = 5;
else if ( $number < 1 )
$number = 1;
else if ( $number > 10 )
$number = 10;
if ( !$comments = wp_cache_get( 'recent_comments', 'widget' ) ) {
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT $number");
wp_cache_add( 'recent_comments', $comments, 'widget' );
}
echo $before_widget;
echo $before_title . $title . $after_title;
echo '<ul id="recentcomments">';
if ( $comments ) : foreach ( (array) $comments as $comment) :
echo '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_comment_link($comment->comment_ID) . '">'. get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
endforeach; endif;
echo '</ul>';
echo $after_widget;
}
?>

Дальше, в то место, где нужно вывести список последних комментариев, например, в файл sidebar.php вставляем этот код:

<?php get_recent_comments(array('number' => 10)); ?>

В скобках указано количество комментариев, которое мы хотим видеть в своем блоге, в данном случае 10.

2. Плагин "Show_top_commentators":

Этот код также вписываем в файл functions.php:

<?php
function dp_top_commentators($limit=10) {
   global $wpdb;
   $sql = "SELECT $wpdb->comments.comment_author, 
   $wpdb->comments.comment_author_email, 
   $wpdb->comments.comment_author_url, 
   COUNT( $wpdb->comments.comment_ID ) 
   AS comment_count FROM $wpdb->comments GROUP BY 
   $wpdb->comments.comment_author_email ORDER BY comment_count LIMIT $limit";
   $topcommentators = $wpdb->get_results($sql, OBJECT);
   foreach ($topcommentators as $tc) {
?>
    <li><a class="username" href="<?php echo $tc->comment_author_url; ?>#">
         <?php echo $tc->comment_author; ?></a>
    </li>
<?php } } ?>

Сам топ комментаторов выводим так:

<?php dp_top_commentators(10); ?>

Продолжение следует ...

Помощь по разблокировке

Для того чтобы снять блок и увидеть ссылку на закачку, подпишитесь на обновления блога.

* Ваше имя: 

* Ваш e-mail: 

В каждом пришедшем письме публикуется код разблокировки.

Пользуйтесь кодом только из последних, пришедших вам на Email, писем.

Хотите получать новые полезные статьи каждую неделю?

К посту "Плагины для WordPress: есть ли альтернатива?" оставлено 2 коммент.
Посмотреть последние комментарии
Трекбеки и пингбеки:
Здесь вы можете написать отзыв

*

Внимание: все отзывы проходят модерацию.