Как отфильтровать HTML изображения, чтобы добавить атрибуты schema.org?

Вопрос или проблема

Я ищу правильный способ добавления 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, но хотите сделать это более специфически для медиаданных в постах. Ниже предложены рекомендации и исправления:

  1. Выбор правильного фильтра: Вы упомянули, что использовали works_secondary-image_thumbnail_html, однако это не является стандартным хуком WordPress. Чтобы добавить атрибут schema.org к изображениям, рекомендуется использовать стандартные хуки, такие как wp_get_attachment_image_attributes. Это позволит добавить нужные атрибуты при вызове изображений с помощью функции wp_get_attachment_image.

  2. Используйте 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;
    }
  3. Фильтрация изображений в постах: Если изображения были вставлены непосредственно в контент постов через визуальный редактор, их нужно обработать отдельно. Используйте хук 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);
    }
  4. Обработка уже существующих постов: Имейте в виду, что изменения применяемого кода не обновят HTML-код, который уже сохранён в старых постах. Для обновления старого контента потребуется либо глобальная замена в базе данных, либо ручное редактирование постов в редакторе WordPress для их обновления.

  5. Оптимизация и тестирование: После внесения изменений протестируйте ваш сайт с помощью Google Structured Data Testing Tool, чтобы убедиться в правильности имплементации.

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

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

Капча загружается...