如何过滤图像的HTML以添加schema.org属性?

时间:2016-08-08 作者:sana123

我正在研究添加模式的正确方法。组织我所有帖子的图片。我已经在使用一个插件(wpprop),该插件正在向标题、博客帖子、评论部分和其他区域添加模式,但我特别希望在单个帖子和附件帖子中的媒体文件主题中添加一些代码。

我已尝试添加itemprop=image 在里面functions.php 但这已经不起作用了;它显示了Google structure数据工具中的一个错误。

这是我在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;
}

1 个回复
SO网友:Andy Macaulay-Brook

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重新写入帖子内容。

相关推荐

Images with overlay

我有一些图片在一个容器中,我想添加一个覆盖和图标。这不是现成的,但我找到了一些有用的代码:HTML:<div class=\"main\"> <span class=\"featured\"><img src=\"http://joshrodg.com/IMG_001-258x258.jpg\" title=\"\" alt=\"\"></span> </div> CSS:.featured {