X
Заказать услугу

Ошибка wp-json после обновления WordPress до версии 4.4

Плагины и Шаблоны для Wordpress
  • 2019-05-26
  • 2722 просмотр

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

  • Дизайн и разработка сайта

Доброго времени суток 🙂

Наткнулся я тут на одну неприятность, вернее меня наткнули. Один хороший человек, который интересуется СЕО и продвижением сообщил о том что у всеми нами любимой WordPress после обновления до версии 4.4 произошел не большой, все таки нет, большой проблеме.

Ошибка wp-json

Разработчики WordPress ввели новый API REST, как говорится для того, чтобы как то получать данные из сайта в виде json. Зачем, почему и как, никому не интересно, но вот результат сия нововведения, огорчил очень много владельцев блогов.

Теперь WordPress создает очень много техстраниц, которые попадают в индекс Яндекса, а это очень плохо. Как увидеть эти страницы? Очень просто, добавьте к адресу сайта - /wp-json, чтобы получилось что-то вроде - site.com/wp-json.

Если перед вами откроется страница с содержимым типа:

{"name":"\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \ и так далее

Поздравляю, у Вас та же комедия. Также если открыть исходный код страницы Вашего сайта в браузере, то в шапке будет обнаружена такая строка

<link rel='https://api.w.org/' href='http://ВАШ САЙТ.com/wp-json/' />

Еще одно место, а оно главное, это панель вебмастера в Яндексе. Если Вы там зарегистрировали свой сайт то перейдите во вкладку Индексирование сайта - Структура сайта и увидите там вот такую картину.

Яндекс Ошибка wp-json

Как видите это у меня и там - 484 страницы, изначально было 670, количество уменьшается после добавления кода, о котором я напишу ниже. Как видите это количество у меня только в Загруженных, в Индекс не попала ни одна, возможно из за правильно составленного robots.txt. Все же мусор всеравно генерировался.

Что бы отключить wp-json на своем блоге WordPress, Вам понадобится код, который был найден на сайте wp-kama.ru.

Вам нужно открыть файл пользовательских функций - functions.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' );

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

Чтобы вновь не развести такой мусор на своем сайте, перед обновлением блога до новой версии, нужно посмотреть в поиске не обнаружили ли люди в обновлениях дыр. Если же все-таки система обновилась и какая-то проблема всплыла, решать ее нужно быстро, чтобы не пришлось потом решать еще больше проблем.

На этом все, спасибо за внимание. 🙂

Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)

Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 6, в среднем: 5 из 5
Читайте также
Опубликовано 4 комментария

Добавить комментарий

Чтобы оставить комментарий - заполните поля ниже. Ваш e-mail не будет опубликован. Все поля обязательны

Нажмите, чтобы добавить код в комментарий. Далее добавьте свой код внутрь тегов <code> тут код </code>
Я ознакомлен(а) с политикой конфиденциальности и даю согласие на обработку персональных данных*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.