Что такое wp-json и как его убрать

Доброго времени суток, мои читатели. Сегодня расскажу о проблеме, с которой столкнулись многие администраторы WordPress сайтов после обновления до версии 4.4.

Если вы всерьез занимаетесь продвижением своего сайта, то скорее всего вам знакома проблема, когда в статистике обхода Вебмастера Яндекс появилась странная и непонятная строка /wp-json.

/wp-json это виртуальная директория, появившаяся в ядре REST API после обновления WordPress до 4.4. Ничего полезного она не делает и, скорее всего, вам не пригодится. Кроме как для захламления индекса. Поэтому wp-json надо убирать, закрывать ее от индексации. Для этого нужно вставить код, приведенный ниже в файл functions.php.

Многие советуют вставлять его непосредственно перед закрытием php, то есть перед символами «?>» (естественно, в коде они без кавычек). Но так как у меня код заканчивается немного иначе, я прописал это все в самый низ, после всех возможных тегов и символов.

Итак, собственно сам код для закрытия /wp-json:

 

// Отключаем сам 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’ );

 

Также было бы неплохо прописать в ваш robots.txt такую строку:

Disallow: /wp-json/

Ее указать следует для всех роботов, если ваш robots написан для каждого отдельно.

Вот и все. Постарался вкратце объяснить, что такое /wp-json и как его убрать. Надеюсь, вам, как и мне поможет данный метод. Всем удачи в разработке и продвижении своих сайтов!

Поделись с друзьями:
  •  
  •  
  •  
  •  
  •  
  •  

Написать комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика