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

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

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

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

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

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

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

1. Disable WordPress Updates

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

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

1
2
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, он находится в корне вашего блога (httpsdocs или public_html (в зависимости от хостинга)) и в самом конце вставить вот этот код:

1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{REQUEST_METHOD} POST
 RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
 RewriteCond %{https_REFERER} !.*blogiseo.ru.* [OR]
 RewriteCond %{https_USER_AGENT} ^$
 RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]
 </IfModule>

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

5. Contact Form 7 + Really Simple CAPTCHA

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<meta https-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 = "[email protected]";
$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 и вставьте вот этот код:

1
2
3
4
5
6
7
8
9
<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

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

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

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

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