作为特色图像标题的自定义字段

时间:2016-06-27 作者:vittorio

问题是:我的特色图像标题没有显示,因为它(仍然)存储在自定义字段(称为(wpcf bildunterschrift)中。我可以很容易地访问customfield,但WordPress存储其图像元数据的字段除外,因为图像元数据没有与图像一起存储,所以我必须依赖使用图像的贴子来在图像和数据之间建立连接。

如何将该值从帖子的自定义字段复制到特色图像的标题字段?

1 个回复
SO网友:birgire

这里有一种方法可以在post_thumbnail_html 过滤器:

add_filter( \'post_thumbnail_html\', function( $html, $post_id )
{
    if( $html && $caption = get_post_meta( $post_id, \'wpcf-bildunterschrift\', true ) )
        $html .= sprintf( \'<p>%s</p>\', sanitize_text_field( $caption ) );

    return $html;
}, 10, 2 );
希望您可以根据自己的需要进行调整。

根据票据更新#12235 在WP 4.6+中,我们将有一个新的模板标签,用于显示特色图像标题,即:

the_post_thumbnail_caption() 
其输出可通过the_post_thumbnail_caption 滤器

它是函数的包装器:

get_the_post_thumbnail_caption() 
这也是函数的包装器:

wp_get_attachment_caption()
此函数用于从附件的post_excerpt 字段及其输出可通过wp_get_attachment_caption 滤器

示例

如果我们的主题使用了这个新模板标记,那么我们可以使用以下内容对其进行过滤:

add_filter( \'the_post_thumbnail_caption\', function( $caption )
{
    if( $custom = get_post_meta( get_the_ID(), \'wpcf-bildunterschrift\', true ) )
        $caption = sanitize_text_field( $custom );

    return $caption;
}, 10, 2 );
请注意,这里我们从自定义字段中去掉了可能的HTML标记。如果您想支持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 {