WP_GET_ATTACH_CAPTION拉取图像标题或ALT

时间:2017-08-10 作者:The WP Intermediate

$output .= \'
    <img 
        class="class1" 
        src="\'.$atts[\'to\'].\'" 
        alt="The First Caption" 
        width="100%" 
        height="auto"
    >\';
我想获取图像的标题/描述,而不是第一个标题。

有人能告诉我怎么做吗?

我试过这个→ wp_get_attachment_captionbut it didn\'t work.

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

如果您有附件的ID,则可以直接获取附件的元数据。附件的alt数据存储在_wp_attachment_image_alt.

因此,您可以使用:

$alt = get_post_meta( $attachment->ID, \'_wp_attachment_image_alt\', true);
要获取图像的标题,可以使用wp_get_attachment_metadata().

$metadata = wp_get_attachment_metadata( $id );
$caption = $metadata[\'image_meta\'][\'caption\'];
编辑根据您评论中的代码,这是完整的短代码:

function simplisto_the_image($atts) {
    $atts = shortcode_atts(
        array( 
            \'to\' => \'http://example.com/image.jpg\' 
        ), 
        $atts
    );
    $caption = \'\';
    // Get the attachment\'s ID from its URL, if the URL is valid
    $url = filter_var( $atts[\'to\'], FILTER_SANITIZE_URL);
    if( filter_var( $url, FILTER_VALIDATE_URL) ) {
        $attachment_id = attachment_url_to_postid( $url );
        // Get the attachment\'s alt, if its a valid ID
        if( $attachment_id ){
            $caption = wp_get_attachment_caption( $attachment_id );
        }
    }

    $output = \'<div class="lazyimg">\'; 
    $output .= \'<img class="lazyimg-popup" src="\'.$atts[\'to\'].\'" alt="\' .$caption. \'" width="100%" height="auto">\'; 
    $output .= \'<i class="fa fa-expand" aria-hidden="true"></i>\'; 
    $output .= \'</div>\'; 
    return $output; 
}
add_shortcode(\'simage\', \'simplisto_the_image\');
短代码将接受图像URL并获取其元数据(如果有效)。

结束

相关推荐

Are captions stored anywhere?

关于我之前的question about shortcode captions, 在我看来,标题的实际文本并不是存储在短代码本身的帖子内容之外的任何地方。我会认为wp_get_attachment_metadata 将存储附件的信息,但它不会。我错了吗?或者WordPress没有在任何地方存储实际的标题?