Замена плагинов кодами. Как снизить нагрузку на хостинг? Часть вторая
Всем здравствуйте.
Сегодня вы узнаете еще один очень эффективный способ, как снизить нагрузку на хостинг. Замена плагинов кодами. Именно об этом, сегодня я вам расскажу.
Если кто не знает, плагины хоть и облегчают жизнь ресурсу и его автору, но в тоже время и вредят. Каждый установленный плагин, дает определенную нагрузку на ваш блог. А если у вас их 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)."'>«</a>"; if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹</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)."'>›</a>"; if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>»</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 постоянно активных плагинов:
Вот как еще дополнительно можно снизить нагрузку на хостинг. Банальная замена плагинов кодами и деактивация не нужных плагинов способствуют снижению нагрузки и ускорению вашего ресурса.
В прошлом посте я показал вам, как снизить нагрузку путем оптимизации базы данных. В следующем посте я расскажу вам еще об одном замечательном способе, как ускорить свой блог и снизить нагрузку на ваш ресурс. Не пропустите,
Как вам статья? Может быть вам известны еще какие-нибудь способы снижения нагрузки на хостинг? Поделитесь ими со всеми читателями.
С уважением, Николай Коротков
Ну наконец-то Коля, я дождался этой статьи. А то к выходу в свет новый блог готовлю, хочется все с нуля сделать. Вот теперь займусь.
Насчет плагина Anti-XSS-attack, он хоть и предназначен для старых версий движка, но меня частенько не пускает. Особенно если захожу в свой Блог из почты по ссылке. Так что я бы не торопился с его удалением.
[Ответить]
Согласен, чем меньше говна всякого на сайте тем лучше
[Ответить]
Николай Коротков
12 декабря 2012 10:53
Lector
Совершенно верно, от Г... нужно избавляться!
[Ответить]
Здравствуйте, нашла для себя пару интересных моментов. Буду изучать подробнее.
А что за невидимая каптча? Замучали спамеры. Акисмет отключила, так стал отправлять в спам и нормальные комментарии.
[Ответить]
Николай Коротков
12 декабря 2012 17:33
Ольга
Про невидимую капчу я писал в своей статье «Основные плагины wordpress». Почитайте в ней п. 12 и все поймете. Вот ссылка на статью.
[Ответить]
Ну что я могу сказать... Огромное спасибо!) Пригодились коды для Формы обратной связи, и для My Page Order
[Ответить]
Николай Коротков
14 декабря 2012 11:33
Томский школьник
Пожалуйста, пользуйся на здоровье.
[Ответить]
Есть несколько плагинов, которые хотелось бы заменить кодом, но буду делать постепенно, сначала надо с кодом получше освоиться
[Ответить]
Так что к этой статье я еще вернусь и, думаю, еще не раз
[Ответить]
при внесении изменений в код желательно записывать, чтобы можно было восстановить при ошибке
[Ответить]
Николай Коротков
7 мая 2013 10:40
Денис
Желательно делать резервные копии редактируемых файлов!
[Ответить]
Абалдеть. Очень нужная и полезная статья.
Николай Вы просто чудо. Практически все плагины, которые у меня пока есть можно заменить кодами. Пойду делать...
[Ответить]
Николай Коротков
12 сентября 2013 13:12
Наталья Гегер
Давно пора...
[Ответить]
Николай!При замене плагина Disable WordPress Updates кодами выдало ошибку на линии 30 Как найти ошибку?
[Ответить]
Николай Коротков
30 января 2014 19:34
Василий
Что за линия 30? И какая ошибка появляется?
[Ответить]
Здравствуйте Николай ! Сделал все по вашей инструкции (WP-PageNavi или список страниц ) Ни чего не изменилось . Постраничная навигация не появилась . Моя тема Enter Button . Может что посоветуете .
С уважением Михаил .
[Ответить]
Николай Коротков
6 марта 2014 14:44
Здравствуйте, Михаил!
Или вы сделали, что-то не так (попробуйте еще раз). Или же коды WP-PageNavi не контактируют с кодами вашего шаблона. Если форма просто не отображается, то похоже на то, что вы вставили участок кода, отвечающий за вывод постраничной навигации, не в то место файла или не в тот файл.
[Ответить]
Здравствуйте .Николай ! Просидел все праздники ,да и сейчас сижу . Вроде везде проверил правильность постановки кода . Не нашел ошибки . Навигация не отображается . Что делать .
.С уважением Михаил.
[Ответить]
Николай Коротков
10 марта 2014 12:45
Здравствуйте, Михаил!
Единственное, что я могу вам посоветовать, это обратиться к фрилансерам, найти другой код постраничной навигации или же воспользоваться плагином.
[Ответить]
Так в том то и дело пробовал с плагином , тоже не заработало . Кстати при установки плагина WP-PageNavi требуется установить дополнительный код . Если плагин не заработал сразу . Перерыл интернет .Противоречивые советы все дают . Вы не знаете правильный код и куда его ставить . Заранее благодарен . Михаил .
[Ответить]
Николай Коротков
10 марта 2014 13:53
Михаил
Раньше у меня был установлен плагин постраничной навигации, но это было очень давно, поэтому правильный код я не помню... Пробуйте противоречивые советы, какой-то из них должен оказаться верным. Главное, не забывайте перед редактированием делать резервные копии файлов.
[Ответить]
У меня 24 плагина, можно бы и еще меньше сделать. Надо этим заняться. Хочется заменить плагины, выводящие смайлы в комментах, и топ комментаторов на коды. Не знаете,Коля, как это сделать?
[Ответить]
Николай Коротков
2 апреля 2014 12:10
Оля
Конечно знаю... У меня и на эту тему есть статьи на блоге. Перейдите на страницу «Все статьи блога», там найдете оба поста. Первый называется «Как установить смайлики на свой блог?», второй — «Топ комментаторов с плагином и без!»
[Ответить]
2 апреля 2014 12:40
Спасибо! Обязательно почитаю!!
[Ответить]
У меня оказывается файл functions совсем другой, так как стоит шаблон Striking. С файлом style.css разобралась уже как то, нашла другой вместо него, а вот с functions пока мне не ясно...
[Ответить]
Из всех перечисленных плагинов, есть только WP-PageNavi и Login LockDown. И то первый всё не получалось кодом сделать и я плюнул на это дело))) Попробую ещё раз с Вашим кодом, а вдруг получится. Остальное же просто не надо или ещё к этому не пришёл, ну или кодом.
[Ответить]
Хорошая подборка кодов!
[Ответить]
Так надеялась найти, но нет ... Николай, напишите пожалуйста как заменить плагины, кот. дарят подарок первому комментатору. У Вас стоит такая функция, как делали? Уверена что это интересно не только мне одной. Спасибо!
[Ответить]
Николай Коротков
12 декабря 2014 12:16
Вот ссылка на статью, где об этом подробно рассказано: blogiseo.ru/plagini/plagi...clude-pages.html
[Ответить]
Николай, спасибо конечно, статью прочитала )) но мой вопрос был в том, как вывести эту функцию БЕЗ плагинов.
[Ответить]