Получайте секретные материалы проекта на свой E-Mail:

Шок! Как я отказался от 13 плагинов на своем блоге!? Часть 1

Привет, привет, Дорогие мои! Буквально пару дней назад мой блог стал в разы быстрее, в связи с тем, что значительно уменьшилось количество плагинов! И в сегодняшней статье мне хотелось бы рассказать Вам о том, как мне это удалось, как я удалил все эти плагины, делегируя их работу кодуЗамена плагинов кодом. Ускоряем WordPress

Надеюсь Вы уже поняли, что от количества установленных плагинов зависит скорость загрузки Вашего сайта. Так вот, чем меньше плагинов, тем лучше. Но зачастую происходит так, что плагин просто необходимый и без него просто никак, но на блоге уже и так плагинов выше крыше. Как поступать в таком случае? Все очень просто! WordPress очень классный движок, поэтому в нем есть такая классная штука как замена некоторых (увы) плагинов обычным кодом, который в большинстве случае необходимо вставить в файл functions.php.

Здесь проблема заключается в том, что многие блоггеры просто не знают об этом! Или думают что это все очень тяжело и им просто не справится, а лучше просто в несколько кликов установить плагин и радоваться. Вот напишите мне пожалуйста сейчас в комментариях сколько плагинов установлено на Вашем блоге? (до прочтения данной статьи). Лично у меня всего 15 плагинов, я считаю это нормально. Хотя в скором времени собираюсь избавиться еще от двух-трех плагинов, поэтому ждите продолжение.

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

Замена плагинов кодом

Давайте сразу договоримся, что Вы не просто прочитаете данную статью, но постараюсь применить все то, о чем пойдет речь и после оставите свой комментарий? Очень надеюсь на Вас. И еще: если у Вас есть чем дополнить эту статью — милости прошу в форму обратной связи.

1. Отображение ТОПа комментаторов без плагина.

ТОП комментаторов без плагина

Думаю объяснять для чего это нужно нет смысла. Ведь так? Ну если вкратце, то это нужно для отображения лучших комментаторов Вашего блога в нужном месте, например в сайдбаре. Ну вообщем, просто посмотрите в боковое меню в блок «Общительные люди» и Вы все сами поймете.

Так вот, переходите в файл functions.php (не забудьте про резервную копию), и самый них перед тегом ?> вставляете следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// топ комментаторов
function top_commentator()
{
global $wpdb;
$month = true; // true - за текущий месяц, false - за все время
$comment = true; // показывать количество комментариев
$nofollow = true; // ссылки nofollow
$count = 6; // количество комментаторов
$col = 3; // количество колонок
$avatarSize = 76; // размер аватара
$exceptionEmail = 'blogger@seokos.ru'; // мыло-исключение, например Ваше
$results = $wpdb->get_results('SELECT COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url FROM (select * from '.$wpdb->comments.' order by comment_ID desc) as pc WHERE comment_author_email != "" AND comment_type = "" AND comment_approved = 1 AND comment_author_email NOT IN ('.preg_replace('/([\w\d\.\-_]+@[\w\d\.\-_]+)(,? ?)/','"\\1"\\2',$exceptionEmail).')'. ($month ? 'AND month(comment_date) = month(now()) AND year(comment_date) = year(now())' : ''). 'GROUP BY comment_author_email ORDER BY comments_count DESC LIMIT '.$count );
$output = "<div class='top-comment'><table width='100%'><tr align='center' valign='top'>";
$i = 0;
foreach($results as $result)
{
if ($i>=$col)
{
$output .= "</tr><tr align='center' valign='top'>";
$i = 0;
}
$i++;
$output .= "<td><div class='avatar-top'>".get_avatar($result->comment_author_email,$avatarSize)."</div><div class='avatar-comment'>";
if ($result->comment_author_url)
if ($nofollow)
$output .= "<a rel='nofollow' target='_blank' id='link-comments' class='hidden-link-top-comments' href='".$result->comment_author_url."'>".$result->comment_author."</a>";
else $output .= "<a rel='nofollow' target='_blank' id='link-comments' class='hidden-link-top-comments' href='".$result->comment_author_url."'>".$result->comment_author."</a>";
else $output .= $result->comment_author;
if ($comment) $output .= " (".$result->comments_count.")";
$output .= "<div style='clear:both;'></div></div></td>"; }
if ($i<=$col) $output .= "</tr>";
$output .= "</table></div>";
echo $output; }
// топ комментаторов

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

1
<?php top_commentator(); ?>

Далее открываете любую страницу блога и проверяете отображается ли ТОП. Если нет, то нужно будет еще вставить небольшой код, который отвечает за отображение php-кода в виджетах (вставлять так же в functions.php:

1
2
3
4
5
6
7
8
9
10
add_filter('widget_text','sp_widget_execute_php',100);
function sp_widget_execute_php($text) {
if(strpos($text,'<?') !== false) {
ob_start();
eval('?>'.$text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}

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

2. Замена плагина Breadcrumb «Хлебные крошки»

Замена плагина Breadcrumb

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

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

Переходите в functions.php и вставляете:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
function dimox_breadcrumbs() {
 
/* === ОПЦИИ === */
$text['home'] = 'Главная'; // текст ссылки "Главная"
$text['category'] = 'Архив рубрики "%s"'; // текст для страницы рубрики
$text['search'] = 'Результаты поиска по запросу "%s"'; // текст для страницы с результатами поиска
$text['tag'] = 'Записи с тегом "%s"'; // текст для страницы тега
$text['author'] = 'Статьи автора %s'; // текст для страницы автора
$text['404'] = 'Ошибка 404'; // текст для страницы 404
 
$show_current = 1; // 1 - показывать название текущей статьи/страницы/рубрики, 0 - не показывать
$show_on_home = 0; // 1 - показывать "хлебные крошки" на главной странице, 0 - не показывать
$show_home_link = 1; // 1 - показывать ссылку "Главная", 0 - не показывать
$show_title = 1; // 1 - показывать подсказку (title) для ссылок, 0 - не показывать
$delimiter = ' &raquo; '; // разделить между "крошками"
$before = '<span class="current1">'; // тег перед текущей "крошкой"
$after = '</span>'; // тег после текущей "крошки"
/* === КОНЕЦ ОПЦИЙ === */
 
global $post;
$home_link = home_url('/');
$link_before = '<span typeof="v:Breadcrumb">';
$link_after = '</span>';
$link_attr = ' rel="v:url" property="v:title"';
$link = $link_before . '<a' . $link_attr . ' href="%1$s">%2$s</a>' . $link_after;
$parent_id = $parent_id_2 = $post->post_parent;
$frontpage_id = get_option('page_on_front');
 
if (is_home() || is_front_page()) {
 
if ($show_on_home == 1) echo '<div class="breadcrumbs"><a href="' . $home_link . '">' . $text['home'] . '</a></div>';
 
} else {
 
echo '<div class="breadcrumbs" xmlns:v="http://rdf.data-vocabulary.org/#">';
if ($show_home_link == 1) {
echo '<a href="' . $home_link . '" rel="v:url" property="v:title">' . $text['home'] . '</a>';
if ($frontpage_id == 0 || $parent_id != $frontpage_id) echo $delimiter;
}
 
if ( is_category() ) {
$this_cat = get_category(get_query_var('cat'), false);
if ($this_cat->parent != 0) {
$cats = get_category_parents($this_cat->parent, TRUE, $delimiter);
if ($show_current == 0) $cats = preg_replace("#^(.+)$delimiter$#", "$1", $cats);
$cats = str_replace('<a', $link_before . '<a' . $link_attr, $cats);
$cats = str_replace('</a>', '</a>' . $link_after, $cats);
if ($show_title == 0) $cats = preg_replace('/ title="(.*?)"/', '', $cats);
echo $cats;
}
if ($show_current == 1) echo $before . sprintf($text['category'], single_cat_title('', false)) . $after;
 
} elseif ( is_search() ) {
echo $before . sprintf($text['search'], get_search_query()) . $after;
 
} elseif ( is_day() ) {
echo sprintf($link, get_year_link(get_the_time('Y')), get_the_time('Y')) . $delimiter;
echo sprintf($link, get_month_link(get_the_time('Y'),get_the_time('m')), get_the_time('F')) . $delimiter;
echo $before . get_the_time('d') . $after;
 
} elseif ( is_month() ) {
echo sprintf($link, get_year_link(get_the_time('Y')), get_the_time('Y')) . $delimiter;
echo $before . get_the_time('F') . $after;
 
} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $after;
 
} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
printf($link, $home_link . $slug['slug'] . '/', $post_type->labels->singular_name);
if ($show_current == 1) echo $delimiter . $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
$cats = get_category_parents($cat, TRUE, $delimiter);
if ($show_current == 0) $cats = preg_replace("#^(.+)$delimiter$#", "$1", $cats);
$cats = str_replace('<a', $link_before . '<a' . $link_attr, $cats);
$cats = str_replace('</a>', '</a>' . $link_after, $cats);
if ($show_title == 0) $cats = preg_replace('/ title="(.*?)"/', '', $cats);
echo $cats;
if ($show_current == 1) echo $before . get_the_title() . $after;
}
 
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
 
} elseif ( is_attachment() ) {
$parent = get_post($parent_id);
$cat = get_the_category($parent->ID); $cat = $cat[0];
if ($cat) {
$cats = get_category_parents($cat, TRUE, $delimiter);
$cats = str_replace('<a', $link_before . '<a' . $link_attr, $cats);
$cats = str_replace('</a>', '</a>' . $link_after, $cats);
if ($show_title == 0) $cats = preg_replace('/ title="(.*?)"/', '', $cats);
echo $cats;
}
printf($link, get_permalink($parent), $parent->post_title);
if ($show_current == 1) echo $delimiter . $before . get_the_title() . $after;
 
} elseif ( is_page() && !$parent_id ) {
if ($show_current == 1) echo $before . get_the_title() . $after;
 
} elseif ( is_page() && $parent_id ) {
if ($parent_id != $frontpage_id) {
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
if ($parent_id != $frontpage_id) {
$breadcrumbs[] = sprintf($link, get_permalink($page->ID), get_the_title($page->ID));
}
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
for ($i = 0; $i < count($breadcrumbs); $i++) {
echo $breadcrumbs[$i];
if ($i != count($breadcrumbs)-1) echo $delimiter;
}
}
if ($show_current == 1) {
if ($show_home_link == 1 || ($parent_id_2 != 0 && $parent_id_2 != $frontpage_id)) echo $delimiter;
echo $before . get_the_title() . $after;
}
 
} elseif ( is_tag() ) {
echo $before . sprintf($text['tag'], single_tag_title('', false)) . $after;
 
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . sprintf($text['author'], $userdata->display_name) . $after;
 
} elseif ( is_404() ) {
echo $before . $text['404'] . $after;
 
} elseif ( has_post_format() && !is_singular() ) {
echo get_post_format_string( get_post_format() );
}
 
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo 'Страница ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
 
echo '</div><!-- .breadcrumbs -->';
 
}
} // end dimox_breadcrumbs()

После чего переходите в нужное место, в моем случае файл single.php и перед отображением названия статьи вставляете следующий код:

1
<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>

Хлебные крошки

Отлично! Переходим дальше...

3. Постраничная навигация без плагина.

Постраничная навигация

Для отображения постраничной навигации существует классный плагин под названием WP-PageNavi. Но так как сегодня мы разбираем замену плагинов, то от этого плагина мы откажемся, а вместо него будем использовать следующий код, который необходимо вставить так же в файл functions.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*** Альтернатива wp_pagenavi (без лишних обращений к данным) ***/
 
function kama_pagenavi($before='', $after='', $echo=true) {
 
/* ================ Настройки ================ */
$text_num_page = ''; // текст для количества страниц. {current} заменится текущей, а {last} последней. Пример: 'Страница {current} из {last}' = Страница 4 из 60
$num_pages = 10; // сколько ссылок показывать
$stepLink = 10; // после навигации ссылки с определенным шагом (значение = число (какой шаг) или '', если не нужно показывать). Пример: 1,2,3...10,20,30
$dotright_text = '…'; // промежуточный текст "до".
$dotright_text2 = '…'; // промежуточный текст "после".
$backtext = '«'; // текст "перейти на предыдущую страницу". Ставим '', если эта ссылка не нужна.
$nexttext = '»'; // текст "перейти на следующую страницу". Ставим '', если эта ссылка не нужна.
$first_page_text = ''; // текст "к первой странице" или ставим '', если вместо текста нужно показать номер страницы.
$last_page_text = ''; // текст "к последней странице" или пишем '', если вместо текста нужно показать номер страницы.
/* ================ Конец Настроек ================ */
 
global $wp_query;
$posts_per_page = (int) $wp_query->query_vars[posts_per_page];
$paged = (int) $wp_query->query_vars[paged];
$max_page = $wp_query->max_num_pages;
 
if($max_page <= 1 ) return false; //проверка на надобность в навигации
 
if(empty($paged) || $paged == 0) $paged = 1;
 
$pages_to_show = intval($num_pages);
$pages_to_show_minus_1 = $pages_to_show-1;
 
$half_page_start = floor($pages_to_show_minus_1/2); //сколько ссылок до текущей страницы
$half_page_end = ceil($pages_to_show_minus_1/2); //сколько ссылок после текущей страницы
 
$start_page = $paged - $half_page_start; //первая страница
$end_page = $paged + $half_page_end; //последняя страница (условно)
 
if($start_page <= 0) $start_page = 1;
if(($end_page - $start_page) != $pages_to_show_minus_1) $end_page = $start_page + $pages_to_show_minus_1;
if($end_page > $max_page) {
$start_page = $max_page - $pages_to_show_minus_1;
$end_page = (int) $max_page;
}
 
if($start_page <= 0) $start_page = 1;
 
$out=''; //выводим навигацию
$out.= $before."<div class='wp-pagenavi'>\n";
if ($text_num_page){
$text_num_page = preg_replace ('!{current}|{last}!','%s',$text_num_page);
$out.= sprintf ("<span class='pages'>$text_num_page</span>",$paged,$max_page);
}
 
if ($start_page >= 2 && $pages_to_show < $max_page) {
$out.= '<a href="'.rtrim(get_pagenum_link(), '/').'">'. ($first_page_text?$first_page_text:1) .'</a>';
if($dotright_text && $start_page!=2) $out.= '<span class="extend">'.$dotright_text.'</span>';
}
 
if ($backtext && $paged!=1) $out.= '<a href="'.rtrim(get_pagenum_link(($paged-1)), '/').'">'.$backtext.'</a>';
 
for($i = $start_page; $i <= $end_page; $i++) {
if($i == $paged) {
$out.= '<span class="current">'.$i.'</span>';
} else {
$out.= '<a href="'.rtrim(get_pagenum_link($i), '/').'">'.$i.'</a>';
}
}
 
if ($nexttext && $paged!=$end_page) $out.= '<a href="'.get_pagenum_link(($paged+1)).'">'.$nexttext.'</a>';
 
//ссылки с шагом
if ($stepLink && $end_page < $max_page){
for($i=$end_page+1; $i<=$max_page; $i++) {
if($i % $stepLink == 0 && $i!==$num_pages) {
if (++$dd == 1) $out.= '<span class="extend">'.$dotright_text2.'</span>';
$out.= '<a href="'.get_pagenum_link($i).'">'.$i.'</a>';
}
}
}
 
if ($end_page < $max_page) {
if($dotright_text && $end_page!=($max_page-1)) $out.= '<span class="extend">'.$dotright_text2.'</span>';
$out.= '<a href="'.get_pagenum_link($max_page).'">'. ($last_page_text?$last_page_text:$max_page) .'</a>';
}
 
$out.= "</div>".$after."\n";
if ($echo) echo $out;
else return $out;
}

А в нужное место, где хотите чтобы отображалась постраничная навигация (single.php, category.php, arhive.php) вставляем следующее:

1
<?php if (function_exists('kama_pagenavi')) kama_pagenavi(); ?>

Далее открываете файл со стилями /wp-content/plugins/wp-pagenavi/pagenavi-css.css копируете от туда весь код и копируем его в наш файл style.css. Если такого файл у Вас нет, значит первым делом необходимо установить плагин WP-PageNavi, но а потом уже после всех манипуляций, данный плагин можно будет удалить!

Сегодня хотелось поделиться с Вами 8 кодами, но уже понимаю что статья будет слишком уж громоздкая, поэтому давайте остановимся на этом! А остальные 10 кодов я буду давать Вам в следующих двух статьях, то есть эта часть первая, а еще будет вторая и третья. Надеюсь Вы со мной согласитесь, что так будет лучше. Ведь так? Чтобы не пропустить еще двух статей из этого цикла, советую подписаться на обновления!

Ну вот и все, друзья, спасибо Вам за внимание!

P.S. Недавно на блоге установил flash-игру в конце статьи. Ставлю эксперимент! Кто напишет в комментариях, для чего я это сделал? И кстати, можете поиграться немного 🙂

Желаю Вам удачи, и до встречи в следующей интересной статье.

С уважением, Константин Белан
автор блога //seokos.ru

Белан Константин Сергеевич

С уважением, Константин Белан.

Рабочая 634570 Россия, Томская обл., г. Томск, +7 952 160 36 17
Добавить пост в избранныеПерейти к списку →
Сделайте мне приятно - нажмите на любую из кнопок:
Подпишитесь на обновления блога и будьте в курсе всех новых статей
Подписаться в один клик
Количество комментариев к данной статье: 52
  1. Ответить

    За хлебные крошки, спасибо. По поводу флеш игры — хороший ход. Зашёл недавно на один блог, там флеш пазлы стояли под статьёй — завис на 30 минут. Поисковики посчитают, что я статьёй зачитался. 🙄

    • Ответить

      Да бывает и такое 😉

    • Не за что, Виталий!

  2. Ответить

    Спасибо за полезную информацию. Я тоже кучу плагинов убрал и блог стал намного шустрее.

    • Да, Денис, у Вас очень шустрый блог.

      • Ответить

        Константин игра просто супер наверное у себя тоже установлю. Также когда буду за компом попробую сделать отображение ТОПа комментаторов без плагина. Потом отпишусь.

        • Ответить

          Что то не получается сделать Топ комментаторов без плагина. При установке темы этот плагин обязателен для установки. Но не чё буду потихоньку ковыряться.

  3. Ответить

    Многие блогеры делают по статье на каждый код,а ты в одной статье сразу 3 а потом еще 8 на две статьи!!Смело!А самое главное очень удобно для посетителей,не надо искать долго кпждую замену!Круто!

    Я если честно,пока что предпочитаю плагины,ведь и правда это на много быстрее без заморочек.У меня усиановлено 23 плагина.Пока что не чувствую проблемы со скоростью блога,хотя это наверно из-за того,что мало контента!В любом случае,эту статью и 2 будущие заношу в закладки и как только почувствую замедление блога,обязательно воспользуюсь этой информацией!Спасибо большое!

    • Спасибо, Игорь.

  4. Ответить

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

    • Хм, и правда Ваш блог немного долго грузится. А какой плагин кэширования у Вас стоит?

      • Ответить

        Вообще постоянно у меня стоял WP Super Cache... а недавно мне посоветовали Hyper Cache установить. Вот экспериментирую... но толку ноль... уже и изображения оптимизировала... а нагрузка неснижается

      • Ответить

        Костя, вот ни у кого в последнее время не спрашивал, храбрости не хватало, а у тебя спрошу, так и быть, а мой блог очень долго грузится?

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

  5. Ответить

    На скорость загрузки влияют не плагины, а кривые плагины. По сути плагины это тот же PHP-код, который не надо переустанавливать при каждом обновлении или смене шаблона. Но самые элементарные вещи, конечно, не стоит реализовывать с помощью плагинов. Типа, соц.кнопок или установки фавикона — это уже слишком.

    • Привет, Олег!

      Согласен с тобой полностью. Но все же PHP-код, находящийся непосредственно в файле functions.php дает немного меньше нагрузки, нежели если бы был плагином, так как все же меньше запросов будет по различным папкам!

      Но все же тут у каждого свое мнение. А сколько у тебя на блоге плагинов стоит?

  6. Ответить

    Константин, статья интересная жду продолжения. У меня вопрос: как всталять код на странице, в статье. Нужен плагин или можно без него обойтись?

    • Спасибо, Виталий! А какой именно код Вам нужно вставить в статью? Обычно все получается без дополнительных плагинов, просто переходите во вкладку «Текст» и там вставляете код в нужное место.

      • Ответить

        Я имел ввиду вот это:) http://prntscr.com/3te2wo

        Хотел написать статью и там нужно показать кусок кода. Как сделать так как у Вас на сайте, ну или примерно так же? Можно ли реализовать это без плагинов?

        З.Ы.Я на своем сайте в конце размещаю видео клипы, сегодня разместил игру, посмотрю на эффект)

        • Подсветка PHP-кода осуществлена с помощью плагина WP-Syntax. Кстати, следующая статья будет именно о нем! 🙂

          P.S. Отпишитесь потом по поводу эффекта от игры.

        • Ответить

          Хорошо, спасибо 🙂

        • Ответить

          Отлично тоже как раз интересовался этим вопросом.

  7. Ответить

    Я согласен с Олегом на все 100%!!!!!!!!!

  8. Ответить

    Я тоже стараюсь обходиться минимальным набором плагинов. Всё что можно устанавливаю с помощью скриптов. А вот пазлы в конце статей перестала устанавливать. А игра с кошечкой затягивает! Минут 10 играла, это не считая времени, что потратила на чтение статьи! 😛

    • Добрый день, Ирина.

      По какой причине перестали устанавливать пазлы?

      А по поводу кошечки полностью согласен — затягивает 🙂

  9. 13 плагинов это вообще ништяк. Блог вдохнул жизнь полной грудью. Убрать такую нагрузку это вообще классно. Игра поставлена с целью увеличения поведенческих факторов. Поведенческие факторы это самое главное и их нужно улучшать!

    • Правильный ответ по поводу flash-игры! Решил поэкспериментировать повлияет ли на статистку...

  10. У меня 12 плагинов. Тоже стараюсь заменять плагины обычным кодом не только из-за скорости загрузки, а скорее из-за уникальности.

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

  11. Ответить

    Спасибо за статью, Константин. Буду экспериментировать с кодами 😉 А флэш-игры не сильно нагружают сайт? Очень много зависит от выбранной игры — с кошкой очень понравилась 🙂

  12. Ответить

    Да, нужно по максимуму заменять плагины на код, флеш-игры тема, кстати, я где-то видел эту игру, тоже немного поиграл. 🙂

    • Ответить

      Да это распространённая игра но прикольная.

  13. Спасибо за статью. Буду следовать советам. Тоже постепенно стараюсь убирать лишние плагины, дабы снизить нагрузку на блог. 😀

  14. А я не очень понял куда именно в style.css вставлять код.

    • Я тоже не совсем понял, прочитать нужно еще раз и возможно все станет понятно

  15. Ответить

    Очень полезная статья. Сейчас у меня установлено 17 плагинов, но с помощью этой статьи я постараюсь штуки 2-3 заменить кодами.

  16. Ответить

    Константин скажи пж. чем плагин отличается от кода

  17. Ответить

    Замена плагинов на код — это очень полезное действие. После того, как я у себя провёл замену плагинов на код, когда использовал WordPress, мой блог стал работать быстрее и нагружать хостинг меньше. Конечно не так, как Maxsite CMS, но всё-таки.

    • Ответить

      Спасибо Денис за ответ.

  18. Ответить

    Здравствуйте, Константин!

    Спасибо за прекрасную статью. Уже избавился от некоторых плагинов. У меня возник вопрос по коду для top-комментаторов. Если мне необходимо вывести в сайдбаре два виджета: лучшие комментаторы за месяц и за все время. Каким образом можно это реализовать?

  19. Константин, подскажи как сделать вывод топ комментаторов как у вас, т.e. что бы выводились ссылки через тег span?

    • Следующая статья будет как раз об этом, Евгений!

      • Отлично, спасибо, буду ждать!

        • Я всё вроде сделал себе, но всё равно статья будет полезной!

  20. Ответить

    За статью спасибо! Пора и мне уже с лишними плагинами бороться. Уже их количество доходит до 30 🙁

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

    Об исполнении доложу 😉

    • Ответить

      Давно пора борьбу с ними вести.

      • Ответить

        Да я с ними уж 7 лет как воюю. То убавлю, то прибавлю 😉

        Вот Костя вовремя с системным подходом всё расписал и растоковал.

        Буду поэтапно, и таким образом, чтобы — ни шагу назад! 😉

        • Ответить

          РастоЛковал — прошу прощения.

          ЗЫ. А чтобы не считали эту правку за желание увеличить количество своих комментов, добавлю в тему.

          Вот сейчас внимание обратил на код 3. «Постраничная навигация без плагина». У меня подобный стоит, но в редакции Виталия Кириллова. И что-он работает не совсем кооректно. Попробую воспользоваться кодом, который предлагает Константин.

  21. Очень полезная статья. Особенно тем кто любит покодить вместо плагинов =)

  22. Ответить

    Костя, вы обещали что покажете в этой статье как скрыть внешние ссылки в ТОП комментариях !! Можно както об этом узнать, а то я пробовал но ничего не получилось !

    • Ответить

      Ссылки в топ комментаторы закрыта в коде в nofollow, лично я к ссылкам не отношусь критично. Они особого влияния не дают. Многие даже специально ссылаются на разные блоги и это им не мешает быть в топе. Не обращай на это внимание

  23. Ответить

    Классные коды, множество плагинов удалил со своего блога. Огромное спасибо Константин!

  24. Ответить

    После установки кода топ комментаторов — антивирус бьёт тревогу и говорит что это вирус — eval ('?>'.$text); ??? почему, что означает эта команда?

  25. Ответить

    Менял топ комментаторов на код, ставил плагин — сейчас работает плагин. Так как код не очень корректно отражался. А смотреть в чём проблемы возникли (и где) честно говоря лень. Может в следующем году займусь.