Собрал в этом посте несколько фишек для сайта на WordPress с других блогов, чтобы потом не бегать не искать их по всему инету. Этот список будет пополняться.
1. Отключаем иконки emoji, которые создают мусор
В function.php вставляем код:
// отключает иконки с версии 4.2
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
//----- end --
2. Отключаем ссылку на wp-json
Убираем из head ссылку на wp-json, чтобы в выдаче ПС не появлялись мусорные страницы вида https://site.ru/wp-json/
. Плюс включается редирект с таких страниц на главную.
Для этого добавляем в function.php код:
// Отключаем сам REST API
add_filter('rest_enabled', '__return_false');
// Отключаем фильтры REST API
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
// Отключаем события REST API
remove_action( 'init', 'rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
remove_action( 'parse_request', 'rest_api_loaded' );
// Отключаем Embeds связанные с REST API
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// если собираетесь выводить вставки из других сайтов на своем, то закомментируйте след. строку.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
// Для редиректа с https://site.ru/wp-json/ на главную
// ИНОГДА ВЫЗЫВАЕТ ПРОБЛЕМУ ВХОДА В АДМИНКУ!!! (проверяйте сразу)
add_action( 'template_redirect', function() {
if ( preg_match( '#^/wp-json/(.*)#', $_SERVER['REQUEST_URI'] ) ) {
wp_redirect( get_option( 'siteurl' ), 301 );
die();
}
} );
3. Удаление информации о версии WP (meta name generator)
В файл function.php вставляем код:
function wp_remove_version() {
return '';
}
add_filter('the_generator', 'wp_remove_version');
4. Запрет индексации feed страниц wordpress для ПС
Заметил что в поиске Яндекса много страниц вида https://site.ru/что-то-там/feed
Зашел в robots.txt, проверил, вроде есть строчки закрывающие feed:
Disallow: */feed/
Disallow: /?feed=
Зашел в Вебмастер Яндекса проверить, закрывают ли они индексацию вышеназванных страниц, оказалось что нет. Нужно добавить еще (без слеша на конце):
Disallow: */feed
Теперь закрыто:
Туда же можно добавить на всякий случай и это (о чем писалось выше):
Disallow: /wp-json
Можно вообще убрать feed, но я не рекомендовал бы это делать, если вам нужна rss лента на сайте.
Но если она вам не нужна и вы хотите перестраховаться, чтобы никто её не парсил, то можете добавить такой код в function.php:
// Отключение rss ленты
function fb_disable_feed() {
wp_redirect(get_option('siteurl'));
}
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );
На заметку
В исходном коде страницы в head могут еще присутствовать строчки вида:
<link rel='dns-prefetch' href='//ajax.googleapis.com' />
<link rel='dns-prefetch' href='//s.w.org' />
Они что-то там ускоряю, и лучше их не убирать.
А плагина нет для этого? Чтобы поставил и все сделалось само собой?
Есть платный плагин — Clearfy.
Интересная информация.Как раз сейчас начала изучать WordPress. Собираю всю полезную информацию.
Спасибо за информацию. Действительно иногда требуется почистить шаблон, возьму на заметку.