Исправляем ошибки author, entry-title и updated. Убрать дату из сниппета поисковых систем
CMS WordPress «из коробки» поддерживает микроразметку hAtom . Эта заметка для тех, кому она не нужна.
В большинстве тем внутри основного цикла WordPress используется функция post_class() . Эта функция добавляет css классы к контейнеру, в котором выводится запись.
Класс hentry — это отправная точка для микроразметки hAtom. Парсер находит этот класс, и анализирует классы внутри него на предмет структурированных данных.
Вот такие ошибки выдает консоль Google Webmasters:
- Отсутствует: author;
- Отсутствует: entry-title;
- Отсутствует: updated.
Для того, чтобы избавиться от микроразметки hAtom, необходимо удалить класс hentry из контейнера записи.
Если в вашей теме этот класс прописан вручную — тут все понятно. Вы удаляете его из верстки. Но в подавляющем большинстве случаев вы столкнетесь к функцией post_class() .
Откроем functions.php , добавить функцию в 4 строки и добавим ее к фильтру.
Функция избавления от hAtom разметки в WordPress
function hentry_class_remover ($classes ) { $classes =array_diff ($classes , array ("hentry" ) ) ; return $classes ; add_filter ("post_class" , "hentry_class_remover" ) ; |
Мы удаляем из массива с классами ячейку, в которой записано значение «hentry» и возвращаем массив уже без него.
Все довольно просто, без вмешательства в ядро и с сохранением всего функционала. Это идеальное решение.
P.S.:
Будте внимательны! Может случиться так, что в CSS файле описаны стили для класса hentry. Тогда придется повесить слетевшее оформление на другой селектор.
Как появились ошибки
Странно, сайту каких-то две недельки и уже первые ошибки. Откуда? Подумал я. Захожу сегодня в Google инструменты, выбираю структурированные данные, дальше hentry (разметка: microformats) и вижу целых 19 ошибок!
Не пугайтесь, если у вас их 300 или 500, а может и еще больше - оказалось решить проблему, связанную со структурированными данными не так уж и сложно.
Как исправить ошибки структурированных данных author, entry-title и updated
— копируем на компьютер файлы, в которых будем делать изменения (в данном случае, скорее всего бок в: single.php, search.php, index.php, archive.php). Так у меня было ;
— делаем еще одну копию этих файлов (их мы будем изменять, и заливать через Filezilla после внесения изменений).
Для того, чтобы вы не запутались, я разделю свою пост на условные части, в каждой из которых расскажу как избавиться от трех проблем сразу. Начинаем?
Ошибка и решение проблемы entry-title. Нет сведений о заголовке статьи.
Теперь только начал понимать, что английский учить нужно было лучше. Здесь собственно все банально. Исправляется ошибка добавлением словосочетания entry-title.
Делается это следующим образом: ищем в редактируемом файле или файлах (у меня во всех четырех была конструкция, которая отвечает за вывод сведений о заголовке) часть кода: или похожую на нее (не по знакам вопроса, а по словосочетанию php the_title).
Внимание ваш код может отличаться, но есть большая вероятность, что он аналогичен или очень похож. После того когда нашли, нам понадобиться добавить entry-title. Собственно как было и стало у меня видно на картинке:
Не пугайтесь, если entry-title надо будет прописать в немножко отдаленном месте от , хотя меня это, честно говоря смутило (боялся что не получиться), но, метод тыка) помог. Дальше будет легче.
Внимание, не забываем проделывать подобное во всех файлах, о которых я писал выше.
Решение проблемы updated - нет сведений о дате публикации статьи.
Здесь нам надо будет добавить к части кода php the_time или php the_date (у кого как) class=»updated» и заключить конструкцию в тег . Кто не знает - смотрим на картинку:
Избавиться от проблемы структурированных данных author. Ошибка - пропал автор 🙂 .
Конечно же, было бы не правильно не позаботиться об авторе, раз уже все сделали. Если вы были внимательны, то уже могли бы и без меня справиться и найти часть кода php the_author, чтобы проделать все как на картинке:
Кстати, порадовало то, что сразу можно проверить устранена ли проблема. Вбивать ненужные символы не буду, просто рекомендую посмотреть на картинки.
На днях обнаружила в панели вебмастера Google предупреждения о множественных ошибках. Оказывается, на каждой страничке отсутствовали сведения о дате публикации и не распознавался заголовок (Отсутствует: entry-title Отсутствует: updated, такие пометки увидела, пройдя путь Вид в поиске - Структурированные данные и нажав на красный значок с восклицательным знаком). Настраивалась несколько дней, не зная как исправить ошибки микроразметки hentry, пока не села за комп и не разобралась за один вечерок. Проблема моя заключалась в том, что все имеющиеся в поиске статьи с подробными советами совсем не подходили мне. Советовали исправлять файлы default.php, index.php, даже некоторые исправляли footer.php, admins.php, search.php...
Мне пришлось долго покопаться, прежде чем я нашла, где расположены функции, выводящие на страницу дату публикации, заголовок записи и автора поста. Оказалось, ответственный за это файл моей темы functions.php.
Где и как исправлять ошибки микроразметки hentry
Итак, начинаем исправлять ошибки микроразметки hentry. Прежде всего оговорю, как искать нужные места в редактируемых файлах. Лично я пользуюсь редактором в админке WordPress: открываю вкладку Внешний вид - редактор - редактируемый файл (выбираем в правом столбце, кликнув мышкой). Открыв файл, можно приступать к поиску.
Исправляем ошибку «Отсутствует: entry-title»
Для начала отыщите функцию, ответственную за вывод заголовка
Php the_title()
Чтобы это сделать, скопируйте ее, и одновременно нажмите клавиши Ctrl + F, в верхнем левом углу экрана увидите появившееся окошко:
Вставьте в него скопированную функцию, нажмите Enter, если этот текст встречается на странице, он будет подсвечен (будьте внимательны, не скопируйте пробел, другие лишние знаки, иначе в результате поиска ничего не найдется!). Вот как выглядит подсветка:
Как видите, отыскать нужный текст довольно просто. Перебирайте все файлы, пока не найдете эту хорошо запрятанную php the_title(). Скорее всего, в этом же файле обнаружите и все остальные нужные нам места. Но обо всем по порядку. Чтобы поисковик Google понимал вывод title, вокруг необходимо прописать
У меня вот что получилось:
Продублирую для тех, кто хочет скопировать результат:
Однако это еще не все! Чтобы исправить ошибку окончательно, необходимо добавить в таблицу стилей соответствующую функцию
Entry-title
описать все цвета, шрифты и прочее, чтобы все выводилось корректно. Изучите свой шаблон, как там прописывается вывод заголовков, по аналогии добавьте новый стиль. Проштудируйте информацию о стилях CSS. У всех шаблоны разные, поэтому придется пополнить свои знания и сделать маленькую дописочку в таблицу стилей.
Исправляем ошибку «Отсутствует: updated»
Пользуясь все тем же поиском, ищем функцию, отвечающую за вывод даты установленной на блоге темы. Это будет или
Php the_date()
или как у меня более сложная:
Get_the_date()
Смысл в том, чтобы заключить нужную нам функцию вывода даты вот в такие «рамки»:
функция
Покажу на скриншоте как было:
Теперь посмотрите исправленный вариант:
Думаю, более-менее понятно, уверена, немного посидев, разберетесь.
Подтверждение авторства, или исправление ошибки «Отсутствует: author»
К большой радости, этой ошибки у меня не было изначально. Кому интересно, авторство в моем шаблоне прописано следующим образом:
Важно! Для подтверждения авторства в Google необходимо иметь аккаунт Google+, в своем профиле О себе - Ссылки указать ссылку на домашнюю страницу своего блога. В настройках All in One SEO Pack указать ссылку своего профиля. Это так называемое двустороннее подтверждение, из публичного аккаунта и страниц сайта.
Чтобы проверить свои действия, после изменений в файлах зайдите в настройки плагина кеширования (если пользуетесь), нажмите кнопку "Clear cache", откройте адрес Гугловской проверки структурированных данных https://www.google.com/webmasters/tools/richsnippets и введите любой URL своего сайта. Там уже будет видно, получилось или нет.