Вопрос или проблема
Я ищу правильный способ добавления schema.org к изображениям всех моих постов. Я уже использую плагин (wpprop), который добавляет схемы к заголовку, блогу, секции комментариев и другим областям, но мне особенно нужен код для добавления в тему для медиафайлов в отдельных постах и постах-вложения.
Я пытался добавить itemprop=image
в functions.php
, но это больше не работает; это показывает ошибку в инструменте структурированных данных Google.
Вот код, который я нашел на сайте WordPress:
add_filter( 'works_secondary-image_thumbnail_html', 'mediaboxlv_image_itemprop', 10, 3 );
function mediaboxlv_image_itemprop( $html, $post_id, $post_image_id {
$htmlstr_replace( 'src', ' itemprop="image" src', $html );
return $html;
}
works_secondary-image_thumbnail_html
не является основным хуком WordPress, поэтому ваш код никогда не выполняется.
Пока изображения отображаются на вашем сайте с помощью функции wp_get_attachment_image
в вашей теме, вы можете добавить атрибуты, подключившись к wp_get_attachment_image_attributes
:
add_filter( 'wp_get_attachment_image_attributes', 'wpse_235266_image_attributes', 10, 3 );
function wpse_235266_image_attributes( $attr, $attachment, $size ) {
$attr['itemprop'] = 'image';
return $attr;
}
Для изображений, вставленных в содержимое поста в визуальном редакторе, вам нужно будет использовать хук get_image_tag
, чтобы изменить HTML, который вставляется в каждый пост.
add_filter( 'get_image_tag', 'wpse_235266_image_html', 10, 6 );
function wpse_235266_image_html( $html, $id, $alt, $title, $align, $size ) {
return str_replace( '<img ', '<img itemprop="image" ', $html );
}
Обратите внимание, что это означает, что ваши существующие посты, где HTML уже сохранен в содержимом, не получат ваши новые атрибуты. Вам либо нужно будет выполнить глобальную замену в старых данных постов для внесения этого изменения, либо пройтись по вашим постам в редакторе, внося изменения во все изображения, заставляя WP заново записывать HTML в содержимое поста.
.
Ответ или решение
Чтобы добавить атрибуты schema.org к изображениям на вашем сайте, важно правильно структурировать и настроить код. Исходя из описания вашей проблемы, вы уже используете плагин для добавления разметки schema.org, но хотите сделать это более специфически для медиаданных в постах. Ниже предложены рекомендации и исправления:
-
Выбор правильного фильтра: Вы упомянули, что использовали
works_secondary-image_thumbnail_html
, однако это не является стандартным хуком WordPress. Чтобы добавить атрибут schema.org к изображениям, рекомендуется использовать стандартные хуки, такие какwp_get_attachment_image_attributes
. Это позволит добавить нужные атрибуты при вызове изображений с помощью функцииwp_get_attachment_image
. -
Используйте
wp_get_attachment_image_attributes
: Добавьте следующий код в файлfunctions.php
вашей темы для добавления атрибутаitemprop="image"
:add_filter('wp_get_attachment_image_attributes', 'add_image_schema_attributes', 10, 3); function add_image_schema_attributes($attr, $attachment, $size) { $attr['itemprop'] = 'image'; return $attr; }
-
Фильтрация изображений в постах: Если изображения были вставлены непосредственно в контент постов через визуальный редактор, их нужно обработать отдельно. Используйте хук
get_image_tag
для добавления атрибута schema.org к HTML-коду изображений:add_filter('get_image_tag', 'add_schema_to_image_tag', 10, 6); function add_schema_to_image_tag($html, $id, $alt, $title, $align, $size) { return str_replace('<img ', '<img itemprop="image" ', $html); }
-
Обработка уже существующих постов: Имейте в виду, что изменения применяемого кода не обновят HTML-код, который уже сохранён в старых постах. Для обновления старого контента потребуется либо глобальная замена в базе данных, либо ручное редактирование постов в редакторе WordPress для их обновления.
-
Оптимизация и тестирование: После внесения изменений протестируйте ваш сайт с помощью Google Structured Data Testing Tool, чтобы убедиться в правильности имплементации.
Таким образом, вы сможете улучшить SEO вашего сайта и корректно добавить разметку schema.org к изображениям, соответствуя современным требованиям поисковых систем и улучшая представление вашего сайта в поисковой выдаче.