Блоговедение        11 декабря 2012        601         30

Замена плагинов кодами. Как снизить нагрузку на хостинг? Часть вторая

Всем здравствуйте.

Сегодня вы узнаете еще один очень эффективный способ, как снизить нагрузку на хостинг. Замена плагинов кодами. Именно об этом, сегодня я вам расскажу.

оптимизация wordpress

Если кто не знает, плагины хоть и облегчают жизнь ресурсу и его автору, но в тоже время и вредят. Каждый установленный плагин, дает определенную нагрузку на ваш блог. А если у вас их 40-50?

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

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

Все коды, которые сегодня я вам покажу, написаны не мной и про них можно найти много информации в интернете, но здесь ключевое слово «найти». Надо искать, тратить свое время! Зачем, если я уже сделал это все за вас? Я постарался собрать в едино основные плагины wordpress, функции которых, можно легко выполнить при помощи обычных кодов. Итак, поехали.

1. Disable WordPress Updates

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

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

remove_action( 'wp_version_check', 'wp_version_check' ); remove_action( 'admin_init', '_maybe_update_core' ); add_filter( 'pre_transient_update_core', create_function( '$a', "return null;" ) );
remove_action( 'load-plugins.php', 'wp_update_plugins' ); remove_action( 'load-update.php', 'wp_update_plugins' ); remove_action( 'admin_init', '_maybe_update_plugins' ); remove_action( 'wp_update_plugins', 'wp_update_plugins' ); add_filter( 'pre_transient_update_plugins', create_function( '$a', "return null;" ) );

Для тех кто не знает где находится файл functions.php, вот путь: админ панель/внешний вид/редактор/functions.php. Первая строка запрещает автоматическое обновление wordpress, вторая — автоматическое обновление плагинов. Как видите, ничего сложного здесь нет.

Только рекомендую вам время от времени (приблизительно один раз в месяц) удалять эти строки из файла, смотреть, не появились ли обновления, если обновления появились — обновиться и снова вставить запрещающий код. Вот и все, минус один плагин. Идем дальше.

2. Russify Comments Number

Плагин, позволяющий склонять окончание слова комментарий. Пример: когда посетитель оставит на вашем блоге два комментария, благодаря плагину, в слове комментарий будет отображаться правильное окончание, 2 комментария, а не 2 комментарий. Так вот, этот плагин также легко заменить кодом. Аналогично первому пункту, вставляем вот этот код в файл functions.php, сразу же после предыдущего кода:

 function plural_form($number, $after) {
 $cases = array (2, 0, 1, 1, 1, 2);
 echo $number.' '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
 }

А вот этот код необходимо вставить в файл comments.php вместо кода, отвечающего за вывод комментариев (путь к файлу тот же, что и к functions.php):

<?php plural_form(get_comments_number(),array('комментарий','комментария','комментариев'));?>

У меня это выглядит вот как:

как снизить нагрузку на хостинг

Замечательно, избавились еще от одного плагина. Идем дальше.

3. WP-PageNavi или список страниц

Плагин, предназначенный для вывода постраничной навигации. Очень полезный плагин, но опять же можно с легкостью обойтись и без него. Снова открываем файл functions.php и перед закрывающимся тэгом ?> вставляем вот этот код:

function my_pagenavi($pages = '', $range = 2)
{
  $showitems = ($range * 2)+1;
  global $paged;
  if(empty($paged)) $paged = 1;
  if($pages == '')
  {
    global $wp_query;
    $pages = $wp_query->max_num_pages;
    if(!$pages)
    {
      $pages = 1;
    }
  }
  if(1 != $pages)
  {
    echo "<div class='pagination'>";
    if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
    if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>";
    for ($i=1; $i <= $pages; $i++)
    {
      if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
      {
        echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
      }
    }
    if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";
    if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
    echo "</div>";
  }
}

Дальше открываем фай index.php  для вывода постраничной навигации, копируем и вставляем вот этот код перед подвалом вашего блога (footer):

<?php if(function_exists('my_pagenavi')) { my_pagenavi(); } ?>

У меня это выглядит вот как:

как снизить нагрузку на хостинг

При вставке кода в файл index.php постраничная навигация будет отображаться только на главной странице вашего блога. Если вы хотите, чтобы навигация отображалась и на других страницах, то этот код должен присутствовать и на них. Это могут быть такие файлы, как archive.php, search.php и т.д.

Теперь для более привлекательного вида остается привязать таблицу стилей для нашей навигации и все готово, минус еще одни плагин! Открываем файл style.css и вставляем в самом конце вот этот код:

.pagination {
clear: both;
font-size: 12px;
margin-top: 10px;
text-align: center;
}
.pagination span, .pagination a {
text-decoration: none;
border: 1px solid #BFBFBF;
padding: 3px 5px;
margin: 2px;
}
.pagination a:hover{
border-color: #000;
}
.pagination .current{
font-weight: bold;
}

Можете поиграться с настройками, подогнав их под свой шаблон, а можете оставить все как есть.

4. Invisible Captcha

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

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{REQUEST_METHOD} POST
 RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
 RewriteCond %{HTTP_REFERER} !.*blogiseo.ru.* [OR]
 RewriteCond %{HTTP_USER_AGENT} ^$
 RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
 </IfModule>

Только не забудьте в пятой строчке вместо моего домена blogiseo.ru прописать свой. Все, избавились еще от одного плагина.

5. Contact Form 7 + Really Simple CAPTCHA

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

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['sub'])) {$sub = $_POST['sub'];}
if (isset($_POST['body'])) {$body = $_POST['body'];} 
$address = "nikolai.korotkov@mail.ru";
$mes = "Имя: $name \nE-mail: $email \nТема: $sub \nТекст: $body";
$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
if ($send == 'true')
{
echo "Сообщение успешно отправлено";
}
else 
{
echo "Сообщение не было отправлено, проверьте пожалуйста правильность заполнения полей и попробуйте снова";
}

В строке №7 укажите свой основной e-mail адрес, на который будут поступать письма, оставленные вашими читателями и переместите файл form.php в папку с темой вашего блога.

Теперь перейдите из административной панели вашего ресурса во вкладку «Страницы» и создайте новую страницу «Обратная связь». Перейдите в режим HTML и вставьте вот этот код:

<table align="center" width="600" style="border:1px solid #003333"><tr><td>
<table align="center" width="600" style="border:2px solid #003333" ><tr><td>
<form action="/wp-content/themes/modxblog/form.php" method="post" name="MyForm">
<br><input style="width: 33%;" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" type="text" name="name" value="Ваше имя" /></br>
<br><input style="width: 33%;" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" type="text" name="email" value="Эл. почта" /></br>
<br><input style="width: 33%;" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" type="text" name="sub" value="Тема" /></br>
<br><textarea style="width: 98%;" onfocus="if(this.value=='Текст сообщения'){this.value=''};" onblur="if(this.value==''){this.value='Текст сообщения'}" name="body" rows="5" cols="1">Текст сообщения</textarea></br>
<input type="submit" value="Отправить сообщение" />
</td></tr></table></td></tr></table>

Не забудьте в строке №3 указать свой путь до файла form.php, у меня это выглядит так:

wp-content/themes/modxblog/form.php

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

как снизить нагрузку на хостинг

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

кнопка вверх для сайта;

кнопки социальных сетей;

топ комментаторов;

смайлики на блоге.

Это те плагины, которые я заменил кодами, но есть еще плагины, без которых можно обойтись, я их просто на просто деактивировал и сейчас постараюсь объяснить почему:

6. Anti-XSS-attack

Плагин, отражающий XSS — атаки. Плагин актуален для версии wordpress 2.5.1 и ниже. С обновлением wordpress версии выше указанной, надобность в нем автоматически пропадает. Удалил.

7. Login LockDown

Плагин, предназначенный для защиты wordpress. Он блокирует ввод пароля на заранее заданное время, если пароль несколько раз набран неверно. Я думаю, этот плагин не спасет от злоумышленников, кто захочет тот взломает. Поэтому я просто придумал очень длинный и очень сложный пароль, пускай взламывают. Вам также советую его отключить, а вместо него сделать пароль из 50-60 символов, в котором будут фигурировать и буквы и цифры и знаки препинания. В общем, чтобы пароль был, как можно сложнее.

Если кто-то из вас думает, что запомнить такой пароль не возможно, носите с собой блокнотик. Думаете, что будет уходить много времени на его набор? Ерунда, после пятидесяти вводов пароля, вы его будете набирать за 5-10 секунд. При этом избавитесь еще от одного плагина.

8. My Page Order

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

Вот в принципе все те плагины, которые я поменял или просто деактивировал. В итоге, если раньше на моем блоге было установлено 27 плагинов, не считая того, что после написания статьи про основные плагины, я установил еще пару штук. О них я писал в этой статье. То на сегодня, у меня осталось всего лишь 18 постоянно активных плагинов:

оптимизация wordpress

Вот как еще дополнительно можно снизить нагрузку на хостинг. Банальная замена плагинов кодами и деактивация не нужных плагинов способствуют снижению нагрузки и ускорению вашего ресурса.

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

Как вам статья? Может быть вам известны еще какие-нибудь способы снижения нагрузки на хостинг? Поделитесь ими со всеми читателями.

С уважением, Николай Коротков

Обсуждение: 30 комментариев
  1. Александр:

    Ну наконец-то Коля, я дождался этой статьи. А то к выходу в свет новый блог готовлю, хочется все с нуля сделать. Вот теперь займусь.
    Насчет плагина Anti-XSS-attack, он хоть и предназначен для старых версий движка, но меня частенько не пускает. Особенно если захожу в свой Блог из почты по ссылке. Так что я бы не торопился с его удалением.

    [Ответить]

    Ответить
  2. Согласен, чем меньше говна всякого на сайте тем лучше 😆

    [Ответить]

    Николай Коротков

    Lector
    Совершенно верно, от Г… нужно избавляться!

    [Ответить]

    Ответить
  3. Здравствуйте, нашла для себя пару интересных моментов. Буду изучать подробнее.
    А что за невидимая каптча? Замучали спамеры. Акисмет отключила, так стал отправлять в спам и нормальные комментарии.

    [Ответить]

    Николай Коротков

    Ольга
    Про невидимую капчу я писал в своей статье «Основные плагины wordpress». Почитайте в ней п. 12 и все поймете. Вот ссылка на статью.

    [Ответить]

    Ответить
  4. Ну что я могу сказать… Огромное спасибо!) Пригодились коды для Формы обратной связи, и для My Page Order

    [Ответить]

    Николай Коротков

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

    [Ответить]

    Ответить
  5. Есть несколько плагинов, которые хотелось бы заменить кодом, но буду делать постепенно, сначала надо с кодом получше освоиться

    [Ответить]

    Ответить
  6. Так что к этой статье я еще вернусь и, думаю, еще не раз

    [Ответить]

    Ответить
  7. Денис:

    при внесении изменений в код желательно записывать, чтобы можно было восстановить при ошибке

    [Ответить]

    Николай Коротков

    Денис
    Желательно делать резервные копии редактируемых файлов!

    [Ответить]

    Ответить
  8. Абалдеть. Очень нужная и полезная статья.
    Николай Вы просто чудо. Практически все плагины, которые у меня пока есть можно заменить кодами. Пойду делать…

    [Ответить]

    Николай Коротков

    Наталья Гегер
    Давно пора… 😉

    [Ответить]

    Ответить
  9. василий:

    Николай!При замене плагина Disable WordPress Updates кодами выдало ошибку на линии 30 Как найти ошибку?

    [Ответить]

    Николай Коротков

    Василий
    Что за линия 30? И какая ошибка появляется?

    [Ответить]

    Ответить
  10. Михаил:

    Здравствуйте Николай ! Сделал все по вашей инструкции (WP-PageNavi или список страниц ) Ни чего не изменилось . Постраничная навигация не появилась . Моя тема Enter Button . Может что посоветуете .
    С уважением Михаил .

    [Ответить]

    Николай Коротков

    Здравствуйте, Михаил!
    Или вы сделали, что-то не так (попробуйте еще раз). Или же коды WP-PageNavi не контактируют с кодами вашего шаблона. Если форма просто не отображается, то похоже на то, что вы вставили участок кода, отвечающий за вывод постраничной навигации, не в то место файла или не в тот файл.

    [Ответить]

    Ответить
  11. Михаил:

    Здравствуйте .Николай ! Просидел все праздники ,да и сейчас сижу . Вроде везде проверил правильность постановки кода . Не нашел ошибки . Навигация не отображается . Что делать . ❓ .С уважением Михаил.

    [Ответить]

    Николай Коротков

    Здравствуйте, Михаил!
    Единственное, что я могу вам посоветовать, это обратиться к фрилансерам, найти другой код постраничной навигации или же воспользоваться плагином.

    [Ответить]

    Ответить
  12. Михаил:

    Так в том то и дело пробовал с плагином , тоже не заработало . Кстати при установки плагина WP-PageNavi требуется установить дополнительный код . Если плагин не заработал сразу . Перерыл интернет .Противоречивые советы все дают . Вы не знаете правильный код и куда его ставить . Заранее благодарен . Михаил .

    [Ответить]

    Николай Коротков

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

    [Ответить]

    Ответить
  13. У меня 24 плагина, можно бы и еще меньше сделать. Надо этим заняться. Хочется заменить плагины, выводящие смайлы в комментах, и топ комментаторов на коды. Не знаете,Коля, как это сделать? 🙄

    [Ответить]

    Николай Коротков

    Оля
    Конечно знаю… У меня и на эту тему есть статьи на блоге. Перейдите на страницу «Все статьи блога», там найдете оба поста. Первый называется «Как установить смайлики на свой блог?», второй — «Топ комментаторов с плагином и без!»

    [Ответить]

    Оля

    Спасибо! Обязательно почитаю!! 🙂

    [Ответить]

    Ответить
  14. У меня оказывается файл functions совсем другой, так как стоит шаблон Striking. С файлом style.css разобралась уже как то, нашла другой вместо него, а вот с functions пока мне не ясно… 😐

    [Ответить]

    Ответить
  15. Из всех перечисленных плагинов, есть только WP-PageNavi и Login LockDown. И то первый всё не получалось кодом сделать и я плюнул на это дело))) Попробую ещё раз с Вашим кодом, а вдруг получится. Остальное же просто не надо или ещё к этому не пришёл, ну или кодом.

    [Ответить]

    Ответить
  16. Хорошая подборка кодов! 🙂

    [Ответить]

    Ответить
  17. Николай:

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

    [Ответить]

    Николай Коротков

    Вот ссылка на статью, где об этом подробно рассказано: http://blogiseo.ru/plagini/plagini-comment-redirect-i-exclude-pages.html

    [Ответить]

    Ответить
  18. Ольга:

    Николай, спасибо конечно, статью прочитала )) но мой вопрос был в том, как вывести эту функцию БЕЗ плагинов.

    [Ответить]

    Ответить

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск по блогу
Подписка на обновления

Введите Ваш e-mail:

rss

twitter

 google

Интересная информация
Хостинг от Макхост

ВОСПОЛЬЗУЙТЕСЬ ПРИ РЕГИСТРАЦИИ КУПОНОМ "blogiseo" И ПОЛУЧИТЕ 3 МЕС. БЕСПЛАТНОГО ИСПОЛЬЗОВАНИЯ ХОСТИНГА ПО ТАРИФУ МАК-10.