28 октября 2019

Хуки, которые необходимо вставить в functions.php после установки сайта


1. Склонение дат на сайте



function true_russian_date_forms($the_date = '') {
 if ( substr_count($the_date , '---') > 0 ) {
  return str_replace('---', '', $the_date);
 }
 // массив замен для русской локализации движка и для английской
 $replacements = array(
  "Январь" => "января", // "Jan" => "января"
  "Февраль" => "февраля", // "Feb" => "февраля"
  "Март" => "марта", // "Mar" => "марта"
  "Апрель" => "апреля", // "Apr" => "апреля"
  "Май" => "мая", // "May" => "мая"
  "Июнь" => "июня", // "Jun" => "июня"
  "Июль" => "июля", // "Jul" => "июля"
  "Август" => "августа", // "Aug" => "августа"
  "Сентябрь" => "сентября", // "Sep" => "сентября"
  "Октябрь" => "октября", // "Oct" => "октября"
  "Ноябрь" => "ноября", // "Nov" => "ноября"
  "Декабрь" => "декабря" // "Dec" => "декабря"
 );
 return strtr($the_date, $replacements);
}
 
// если хотите, вы можете приминить только некоторые из фильтров
add_filter('the_time', 'true_russian_date_forms');
add_filter('get_the_time', 'true_russian_date_forms');
add_filter('the_date', 'true_russian_date_forms');
add_filter('get_the_date', 'true_russian_date_forms');
add_filter('the_modified_time', 'true_russian_date_forms');
add_filter('get_the_modified_date', 'true_russian_date_forms');
add_filter('get_post_time', 'true_russian_date_forms');
add_filter('get_comment_date', 'true_russian_date_forms');

2. Сообщения об ошибках при попытке авторизации пользователя на сайте



function true_change_default_login_errors(){
 return '<strong>ОШИБКА</strong>: Вы ошиблись при вводе логина или пароля.';
}
 
add_filter( 'login_errors', 'true_change_default_login_errors' );

3. Защита от вредоносных URL-запросов



if (strpos($_SERVER['REQUEST_URI'], "eval(") || strpos($_SERVER['REQUEST_URI'], "CONCAT") || strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") || strpos($_SERVER['REQUEST_URI'], "base64")) {
 @header("HTTP/1.1 400 Bad Request");
 @header("Status: 400 Bad Request");
 @header("Connection: Close");
 @exit;
}

4. Защита от автоматического спама



function true_stop_spam( $commentdata ) {
 $fake = trim($_POST['comment']); // обычное поле комментирования мы скроем через CSS
 if(!empty($fake)) // заполнение его роботами будет приводить к ошибке, комментарий отправляться не будет
  wp_die('Спамный коммент!'); 
 $_POST['comment'] = trim($_POST['true_comment']); // затем мы присвоим ему значение поля комментария, которое для людей
 return $commentdata;
}
 
add_filter('pre_comment_on_post', 'true_stop_spam');

5. Скрываем имена пользователей из HTML-кода комментариев



function true_remove_css_class( $classes ) {
 foreach( $classes as $key => $class ) {
  if(strstr($class, "comment-author-")) {
   unset( $classes[$key] );
  }
 }
 return $classes;
}
add_filter('comment_class', 'true_remove_css_class');

6. Запрет пингбэков и трэкбэков на самого себя



function true_disable_self_ping( &$links ) {
 foreach ( $links as $l => $link )
  if ( 0 === strpos( $link, get_option( 'home' ) ) )
    unset($links[$l]);
}
 
add_action( 'pre_ping', 'true_disable_self_ping' );

7. Скрываем версию WordPress

 
function true_remove_wp_version_wp_head_feed() {
 return '';
}
 
add_filter('the_generator', 'true_remove_wp_version_wp_head_feed');

Комментариев нет:

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