使用筛选器将架构项目属性图像添加到_POST_THMBILE

时间:2012-12-18 作者:Ryan Dennler

我尝试使用以下方法将筛选器应用于\\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?

谢谢

2 个回复
最合适的回答,由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;
}

结束

相关推荐

Add_Filters()和Apply_Filter()有什么作用?

我有点困惑,为什么这不起作用-尽管必须说,我不太确定是什么apply_filters() 和add_filter 正在做,所以任何一般性的提示都会很好!我想要一个查询,在一个帖子页面上显示之前的五篇帖子。我正在发送当前帖子的日期,并希望应用一个过滤器,过滤出早于此的帖子。function sw_filter_posts_before( $where = \'\', $date) { $where .= \" AND post_date < \'\" . $date . \"