$output .= '
<img
class="class1"
src="'.$atts['to'].'"
alt="The First Caption"
width="100%"
height="auto"
>';
最初のキャプションの代わりに、画像のキャプション/説明を取得します。
誰かがこれを行う方法を私に導くことができますか?
私はこれを試しました→wp_get_attachment_caption
しかしうまくいきませんでした。
添付ファイルのIDがあれば、その添付ファイルのメタデータを直接取得できます。添付ファイルの代替データは_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を受け入れ、それが有効であればメタデータを取得します。