我尝试使用以下方法将筛选器应用于\\u post\\u thumbnail()函数
apply_filters( \'post_thumbnail_html\', $html, $post_id, $post_thumbnail_id, $size, $attr );
这是我想出的代码,但似乎并不完全有效
function red_adjust_image_schema($html, $id, $caption, $title, $align, $url, $size, $alt)
{
$html = \'<div class="image-container" itemprop="image">\'. $html . \'</div>\';
return $html;
}
add_filter(\'post_thumbnail_html\', \'red_adjust_image_schema\', 20, 8);
如何将itemprop=“image”添加到实际的图像元素中,使其正确注册?现在看来我只能做一个容器并包装$html?
谢谢
最合适的回答,由SO网友:kaiser 整理而成
你只是有错误的论点(包括它们的列表)。
$caption, $title, $align, $url, $alt
里面太多了。
和$attr
不见了。并不是说如何命名变量很重要(只要它们以字符开头),而是更容易为以后的读者阅读。
function wpse76536_image_schema( $html, $post_id, $post_thumbnail_id, $size, $attr )
{
return "<div class=\'image-container\' itemprop=\'image\'>{$html}</div>";
}
add_filter( \'post_thumbnail_html\', \'wpse76536_image_schema\', 10, 5 );
SO网友:Rolands.EU
您只需添加一个新属性:
add_filter(\'wp_get_attachment_image_attributes\', \'ipwp_img_attr\', 10, 2);
function ipwp_img_attr($attr) {
$attr[\'itemprop\'] = \'image\';
return $attr;
}
这样,只会有一个新属性,无需搜索和替换任何代码-请参阅我的早期版本:
add_filter(\'post_thumbnail_html\',\'mediaboxlv_image_itemprop\',10,3 );
function mediaboxlv_image_itemprop($html, $post_id, $post_image_id){
$html = str_replace(\'src\',\' itemprop="image" src\',$html);
return $html;
}