从 Wordpress 媒体库中获取单个特定图像
Posted
技术标签:
【中文标题】从 Wordpress 媒体库中获取单个特定图像【英文标题】:Get a single specific image from Wordpress Media Library 【发布时间】:2014-01-06 23:57:03 【问题描述】:我已将图片上传到 Wordpress 媒体库。
我知道我可以查看图像然后获取该特定图像的 URL,然后使用img
html 标记在页面上显示它。
然而,这并没有得到图像的alt
、title
、caption
和description
。
img
未附加到帖子或页面字段,因此我假设您不能使用获取附件功能等。
我想使用函数而不是写出静态的img
html 代码的原因是,它们可以更好地缓存,并且更容易维护,因为图像的所有数据都在媒体库中更新,而不必编辑html 代码不适合最终用户。
提前谢谢你。
【问题讨论】:
【参考方案1】:这么多复杂且在我看来是错误的答案,而答案非常直接:
<?php
$url_to_my_attachment = "http://example.com/wp-content/uploads/image.png";
$attachment_id = attachment_url_to_postid($url_to_my_attachment);
print wp_get_attachment_image($attachment_id);
欲了解更多信息,请查看wp_get_attachment_image
注意:这会呈现一个“响应式图像”,其中alt
属性包含附件的alt 数据。因此,这个答案并不能完全满足 OP 的要求,该要求还要求包括 title
、description
和 caption
字段。有关如何包含这些其他字段的信息,请参阅已接受的答案或其他答案。
【讨论】:
【参考方案2】:请尝试以下代码:
<?php
$attachmentID = 1875;
$imageSizeName = "thumbnail";
$img = wp_get_attachment_image_src($attachmentID, $imageSizeName);
//print_r($img);
?>
<img src="<?php echo $img[0]; ?>" >
【讨论】:
【参考方案3】:先获取图片
function get_images_from_media_library()
$args = array(
'post_type' => 'attachment',
'post_mime_type' =>'image',
'post_status' => 'inherit',
'posts_per_page' => 5,
'orderby' => 'rand'
);
$query_images = new WP_Query( $args );
$images = array();
foreach ( $query_images->posts as $image)
$images[]= $image->guid;
return $images;
并显示图像
function display_images_from_media_library()
$imgs = get_images_from_media_library();
$html = '<div id="media-gallery">';
foreach($imgs as $img)
$html .= '<img src="' . $img . '" />';
$html .= '</div>';
return $html;
并使用 php fire 事件
<?php echo display_images_from_media_library(); ?>
或使用此功能
<?php
if ( $attachments = get_children( array(
'post_type' => 'attachment',
'post_mime_type'=>'image',
'numberposts' => 1,
'post_status' => null,
'post_parent' => $post->ID
)));
foreach ($attachments as $attachment)
echo wp_get_attachment_link( $attachment->ID, '' , true, false, 'Link to image attachment' );
?>
【讨论】:
【参考方案4】:我想你有一个附件 ID?您是否尝试过使用附件功能?
来自法典:
请注意,媒体项目本身也是“帖子”,可以 通过 WordPress 模板层次结构显示。主题可以 利用它来循环媒体项目或创建画廊。
以下功能应该可以帮助您入门:
您可以使用以下方式检索图像 src:wp_get_attachment_image_src()
$img= wp_get_attachment_image_src($attachmentID, $imageSizeName);
您可以使用以下方式获取图片标题:get_post_field()
get_post_field('post_excerpt', $attachmentID)
您可以使用以下方式获取 alt 标签:get_post_meta()
get_post_meta($attachmentID, '_wp_attachment_image_alt', true);
【讨论】:
但是您从哪里获得附件的实际 ID? 在媒体库中查看图片时,可以在浏览器栏的URL中看到附件ID。以上是关于从 Wordpress 媒体库中获取单个特定图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在无头 wordpress 环境中确保图像请求的 CORS?