Продолжаем оптимизацию WordPress (часть 2)

word Привет, друзья. Вы читаете статью на сайте o-blogah.ru. Это продолжение поста  «Внутренняя оптимизация WP (часть I)«. Предлагаю анонс: узнаем как скрыть рубрики на главной странице  WordPress; можно не отдавать некоторые записи в RSS ленту; что сделать если не выводятся мета-теги в теме WordPress; а также как защитить WordPress от спама без плагинов.

Продолжаем уменьшать количество запросов к базе данных в WordPress

Редактирование (оптимизация) header.php и footer.php будут рассмотрены в статье «Оптимизируем работу Вордпрес без плагинов (часть 3)«. А пока поговорим о том

Как скрыть рубрики на главной странице WordPress без помощи плагинов

Решение очень простое. Есть плагин: Advanced Category Excluder. Но лучше обойтись без плагинов. Будем экономить место на сервере. Работаем в админке WordPress. Обратимся к пункту «Внешний вид» в админке wordpress, из него — в редактор. Откроем файл >index.php. Надо дописать одну строку в коде. Ищем следующую строку:

<?php if (have_posts()) : ?>

Под этой строкой вставим нашу:

<?php query_posts($query_string.’&cat=-67′); ?>

Примечание: число -67 – это ID той рубрики, которую мы хотели бы скрыть на главной. Если таких рубрик несколько, добавим их ID через запятую.

Как не отдавать в RSSленту некоторые записи

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

function exclude_cat_feed($query) {if ($query->is_feed) {$query->set(‘cat’,’-1 -4′);} return $query;}

add_filter(‘pre_get_posts’,’exclude_cat_feed’);

Небольшое пояснение: два числа ‘-1 -4′ — это ID рубрики, статьи которых мы не желаем отдавать в RSS ленту.

Не выводятся мета-теги в теме WordPress 

Если вы обнаружили, что, не смотря на ручное заполнение тегов, мета теги meta description и meta keywords остаются пустыми (вы это можете проверить, посмотрев код страницы), то это показывает на не совсем корректную работу вашей темы. Но это легко исправить. Вам надо подкорректировать файл header.php. Откройте его редактором админки или, например, notepad++ и добавьте вызов функции:

<?php wp_head(); ?>

Примечание: эта функция отвечает за вывод мета-информации.

Защита от спама в WordPress без плагинов

Идея метода заключается в следующем: вы добавляете еще одно поле для ввода комментариев. Первое из них (стандартное) делаете невидимым для ваших читателей. Они вводят комменты во второе поле. А первое поле заполняется спамным комментарием, т.к. спам-скрипты ищут и заполняют поле со стандартным именем. Таким образом, комменты разделяются автоматически на два потока: ручной (его вводят люди) и автоматическая рассылка спама.

Нам придётся рассмотреть два варианта: для WordPress 3.0 и для более старого. Как вы сами понимаете: разные версии имеют разные наборы функций.

Начнём с того, что добавим форму комментария, которой будут пользоваться читатели.

1.Вариант для WordPress 3.0. Разработчики  ввели новую функцию comment_form(). Она может заменять форму комментария. Откроем файл functions.php. В конце его допишем следующий текст:

add_filter (‘comment_form_defaults’, ‘change_comment_form_defaults’);

function change_comment_form_defaults($default) {$commenter = wp_get_current_commenter();

$default[‘comment_notes_after’] .='<p class=»comment-form-real-comment»>

<label for=»real-comment»>Комментарий</label><textarea id=»real-comment»

aria-required=»true» rows=»8″ cols=»45″ name=»real-comment»></textarea></p>’;

return $default;}

Для того чтобы сделать невидимым стандартное поле вставим в style.css всего одну строку:

.comment-form-comment {display: none;}

2. Этот пункт предназначен для более старой версии wordpress.

Откройте comments.php и найдите часть текста, примерно похожую на приведённую ниже:

class=»textarea» name=»comment»></textarea>

Этот кусочек надо заменить на следующий:

 

<div class=»smo»>

   <textarea id=»comment» class=»textarea» name=»comment»></textarea>

</div>

<textarea id=»real-comment» class=»textarea» name=»real-comment»>

</textarea>

Имя видимого поля для комментариев — «real-comment». Теперь нам надо скрыть существующее видимое поле для комментов. Внесём небольшие изменения в файл стилей  style.css. Добавим в него на выбор одну из строк:

 

.smo {position: absolute; left: -1000px;}

или

.comm {display: none;}

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

Теперь осталось добавить фильтр, принцип работы которого заключается в сортировке: если комментарий ввели через видимое поле, то комментарии публикуем, иначе — запрещаем к публикации. Этот код надо вставить в файл functions.php:

 

//проверка на спам start

add_filter(‘pre_comment_on_post’, ‘verify_spam’);

function verify_spam($commentdata) {$spam_test_field = trim($_POST[‘comment’]);

if(!empty($spam_test_field)) wp_die(‘Спаму нет!’);

$comment_content = trim($_POST[‘real-comment’]);

$_POST[‘comment’] = $comment_content; return $commentdata;}

//проверка на спам end

Всё, на этом работа по защите от спама закончена. В следующей статье поговорим об оптимизации файлов шаблона wordpress: header.php и footer.php.

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

Похожие посты

41 комментарий

  1. AlikaSeike 13.01.2017 Ответ
  2. kazimir_tagashov 17.03.2016 Ответ
  3. crorkservice fiverr 30.01.2016 Ответ
  4. great site 28.09.2015 Ответ
  5. kursy angielskiego dąbrowa górnicza 10.08.2015 Ответ
  6. crork seo 30.05.2015 Ответ
  7. japanese sex 29.05.2015 Ответ
  8. phone kingston 17.04.2015 Ответ
  9. a knockout post 04.03.2015 Ответ
  10. cialis france 25.12.2014 Ответ
  11. obpmilling 12.03.2014 Ответ
  12. obpmilling 05.03.2014 Ответ
  13. the best! 24.02.2014 Ответ
  14. highland2007 14.02.2014 Ответ
  15. highland 09.02.2014 Ответ
  16. WilliamMi 04.02.2014 Ответ
  17. viewdesign 30.01.2014 Ответ
  18. hgsthtm 21.01.2014 Ответ
  19. look at this 17.01.2014 Ответ
  20. beenaincini 22.12.2013 Ответ
  21. Sahjacysparry 31.10.2013 Ответ
  22. chanel sac 30.10.2013 Ответ
  23. ブルガリ リング 13.08.2013 Ответ
  24. football shirts 04.08.2013 Ответ
  25. carpinteyroxgg 29.07.2013 Ответ
  26. maillot juventus 29.07.2013 Ответ
  27. Landon 28.07.2013 Ответ
  28. birthday gifts 25.07.2013 Ответ
  29. birthday gifts 24.07.2013 Ответ
  30. maillot Lyon 22.07.2013 Ответ
  31. gifts for men 20.07.2013 Ответ
  32. Ольга 28.06.2013 Ответ
    • web-adminАвтор 28.06.2013 Ответ
  33. cheap louis vuitton shoes 25.06.2013 Ответ
  34. Sophie 23.06.2013 Ответ
  35. Louis Vuitton Outlet 08.06.2013 Ответ
  36. Kevin 31.05.2013 Ответ
    • carpinteyronrf 29.07.2013 Ответ
  37. Emma 24.05.2013 Ответ
    • Deepak 13.04.2014 Ответ

Оставить комментарий

Ваш e-mail не будет опубликован.