如何从 Wordpress Media 获取图像标题和描述
How to get image title and description from Wordpress Media
我有一个产品页面,您可以在其中创建自己的产品,随着您做出的每个选择,显示的图像都会发生变化。
一旦用户点击按钮,我想使用短代码从 Wordpress 的媒体部分获取当前显示图像的标题和描述。
现在我发现很多 post 都带有此代码(您必须在 functions.php
中插入)
function wp_get_attachment( $attachment_id ) {
$attachment = get_post( $attachment_id );
return array(
'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
'caption' => $attachment->post_excerpt,
'description' => $attachment->post_content,
'href' => get_permalink( $attachment->ID ),
'src' => $attachment->guid,
'title' => $attachment->post_title
);
}
然后用这段代码调用函数
$attachment_meta = wp_get_attachment($attachment_id);
编辑:我在 post here
上找到了代码
但是由此收集的数据仅与产品页面有关(因此页面的标题和描述),这不是我要找的。
另外,我发现获取页面上图像 attachment_id 的唯一方法是使用这篇文章 here
但它是手动完成的,我需要在短代码中完成它...
这是完整的代码
add_shortcode( 'afficher_produits_devis2', function(){
$attachment_meta = wp_get_attachment($attachment_id);
echo $attachment_meta['caption'];
} );
function wp_get_attachment( $attachment_id ) {
$attachment = get_post( $attachment_id );
return array(
'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
'caption' => $attachment->post_excerpt,
'description' => $attachment->post_content,
'href' => get_permalink( $attachment->ID ),
'src' => $attachment->guid,
'title' => $attachment->post_title
);
}
编辑 2
我可能已经找到了来自@Ruvee 的 post 的解决方案,但现在我必须找到一种方法来解析页面的 html 并获取URL 的图像。
编辑 3
我发现了为什么我只能获取缩略图数据,结果是当我加载产品页面时直接激活简码,而不是当我点击按钮时。所以它只激活一次并且总是让第一张图片出现(缩略图)。
我更正了错误,现在可以正常使用了
谢谢@Ruvee
"I have to find a way to parse the html of the page and get the URL of the image."
不,没必要!正如我在 中所说,在没有实际图像 url 的情况下获取元数据的第二种方法是使用 id of the image
。您可以使用 get_post_thumbnail_id
函数获得 id of the image
。
所以你的简码应该是这样的:
add_shortcode( 'afficher_produits_devis2', function(){
global $post;
$image_id = get_post_thumbnail_id($post->ID);
$image_caption = get_post_field('post_excerpt', $image_id);
echo $image_caption;
} );
我有一个产品页面,您可以在其中创建自己的产品,随着您做出的每个选择,显示的图像都会发生变化。
一旦用户点击按钮,我想使用短代码从 Wordpress 的媒体部分获取当前显示图像的标题和描述。
现在我发现很多 post 都带有此代码(您必须在 functions.php
中插入)
function wp_get_attachment( $attachment_id ) {
$attachment = get_post( $attachment_id );
return array(
'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
'caption' => $attachment->post_excerpt,
'description' => $attachment->post_content,
'href' => get_permalink( $attachment->ID ),
'src' => $attachment->guid,
'title' => $attachment->post_title
);
}
然后用这段代码调用函数
$attachment_meta = wp_get_attachment($attachment_id);
编辑:我在 post here
上找到了代码但是由此收集的数据仅与产品页面有关(因此页面的标题和描述),这不是我要找的。
另外,我发现获取页面上图像 attachment_id 的唯一方法是使用这篇文章 here 但它是手动完成的,我需要在短代码中完成它...
这是完整的代码
add_shortcode( 'afficher_produits_devis2', function(){
$attachment_meta = wp_get_attachment($attachment_id);
echo $attachment_meta['caption'];
} );
function wp_get_attachment( $attachment_id ) {
$attachment = get_post( $attachment_id );
return array(
'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
'caption' => $attachment->post_excerpt,
'description' => $attachment->post_content,
'href' => get_permalink( $attachment->ID ),
'src' => $attachment->guid,
'title' => $attachment->post_title
);
}
编辑 2
我可能已经找到了来自@Ruvee 的
编辑 3
我发现了为什么我只能获取缩略图数据,结果是当我加载产品页面时直接激活简码,而不是当我点击按钮时。所以它只激活一次并且总是让第一张图片出现(缩略图)。
我更正了错误,现在可以正常使用了 谢谢@Ruvee
"I have to find a way to parse the html of the page and get the URL of the image."
不,没必要!正如我在 id of the image
。您可以使用 get_post_thumbnail_id
函数获得 id of the image
。
所以你的简码应该是这样的:
add_shortcode( 'afficher_produits_devis2', function(){
global $post;
$image_id = get_post_thumbnail_id($post->ID);
$image_caption = get_post_field('post_excerpt', $image_id);
echo $image_caption;
} );