Главная
Wordpress
Ошибка wp-json после обновления WordPress до версии 4.4
  • 12 Фев 2016г
  • 416
  • 4
  • Рубрика: Wordpress

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

Ошибка wp-json

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

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

Разработчики 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 комментария

  • Сергей
    Комментариев: 1

    Реально спасибо! блин я и не знал. Подстава конечно не малая...

  • Ava
    Комментариев: 1

    Ребята пожалуйста помогите устранить проблему, где надо вставлять код? я папробывал не получилось,сайт перестал работать

    • Виталий
      Комментариев: 267

      В статье же написано - Вам нужно открыть файл пользовательских функций - functions.php и в его конец перед закрывающим тегом ?>, если нет, то просто в конец, нужно добавить код

      Вот так я добавил на своем сайте
      http://prntscr.com/b48fsc

      Если сайт не доступен с админки, зайдите с ФТП. Откройте functions.php и проверьте правильно ли добавили код.

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

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

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Нажмите, чтобы добавить код в комментарий