Исправляем ошибку «Отсутствует поле «query-input» (в potentialAction)» в WordPress

Здравствуйте.

Вот такое сообщение мне периодически писал Google Search Console:

Владельцу ресурса https://aleksandr-krylov.ru/

На вашем ресурсе обнаружена одна или несколько проблем (1) следующего типа: Окно поиска по ссылкам сайта: структурированные данные. Они перечислены ниже.

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

Основные критические проблемы* Отсутствует поле «query-input» (в potentialAction)

*Страницы и функции с критическими проблемами не допускаются к показу в результатах поиска.

И по непонятной причине такое уведомление к консоли гугл то появлялось, то исчезало.

Я использую WordPress, а в нём — плагин All in One SEO. Я не заметил настроек в бесплатной версии для функционала Schema.

И поэтому я решил с этим уже разобраться.

Идея такая: проверяем, есть ли в выводе этого плагина указанное поле. Если есть — ничего не делаем. Если нет — добавляем это поле.

Для этого можно добавить в файл functions.php используемой темы вот такой код:

function add_query_input_to_structured_data($data) {
// Проверяем, что структурированные данные принадлежат типу SearchAction
if (isset($data['@type']) && $data['@type'] === 'SearchAction') {
// Проверяем, отсутствует ли поле "query-input"
if (!isset($data['query-input'])) {
// Если его нет, добавляем поле "query-input". Если уже есть - ничего не делаем
$data['query-input'] = 'required name=search_term_string';
}
}
return $data;
}
add_filter('aioseop_schema_data', 'add_query_input_to_structured_data');

Этот код использует фильтр aioseop_schema_data, предоставляемый плагином All in One SEO, чтобы изменить структурированные данные.Проблема только в том, что ошибка в редактировании файла функций может привести к неработоспособности сайта.

И поэтому можно сделать по-другому — просто поставить маленький плагин с этим же кодом, который я сегодня отправил в репозиторий WordPress (он там пока на проверке — когда проверят — отредактирую эту часть статьи).

И даже если эту ошибку в дальнейшем в All in One SEO исправят и поле появится — ничего страшного не случится: просто код из этого маленького плагина запускаться не будет.

Тут будет 4 шага:

  1. в папке plugins создаём папку ak-add-query-input
  2. в ней создаём файлик ak-add-query-input.php
  3. в файлик вставляем код, который ниже и сохраняем
  4. активируем плагин и всё.

Вот код для файла ak-add-query-input.php — как видите, он такой же, как выше, только заголовки оформлены, чтобы он работал как плагин:

<?php
/**
* Plugin Name: AK Add Query Input
* Description: Add "query-input" (in potentialAction) for All in One SEO.
* Version: 1.0.0
* Author: Александр Крылов
* Plugin URI: https://aleksandr-krylov.ru/page/add-query-input-in-potentialaction/
* Author URI: https://aleksandr-krylov.ru/
* License: GPL-2.0-or-later
*/

//подключаем поле в микроразметку Sсhema
// Функция, добавляющая поле "query-input" в структурированные данные
function ak_add_query_input_to_structured_data($data) {
// Проверяем, что структурированные данные принадлежат типу SearchAction
if (isset($data['@type']) && $data['@type'] === 'SearchAction') {
// Проверяем, отсутствует ли уже поле "query-input"
if (!isset($data['query-input'])) {
// Если его нет, добавляем поле "query-input". Если уже есть - ничего не делаем
$data['query-input'] = 'required name=search_term_string';
}
}

return $data;
}

add_filter('aioseop_schema_data', 'ak_add_query_input_to_structured_data');

Благодарю за внимание. Надеюсь, что, как и мне, это вам поможет решить проблему «Отсутствует поле «query-input» (в potentialAction)».

Александр Крылов.

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

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