我已将图片上传到Wordpress媒体库。
据我所知,我可以查看我的图片然后获取该特定图片的网址,然后使用img
html标记在页面上显示此内容。
然而,这不会获得图片的alt
,title
,caption
和description
。
img
未附加到帖子或页面字段,因此我假设您无法使用“获取附件”功能等。
我想使用函数而不是写出静态img
html代码的原因是,它们被更好地缓存,更容易维护,图像的所有数据都在媒体库中更新而不是编辑对最终用户不了解的HTML代码。
提前谢谢。
答案 0 :(得分:18)
我认为你有附件ID?您是否尝试过使用附加功能?
来自codex:
请注意,媒体项目本身也是“帖子”,可以 通过WordPress模板层次结构显示。主题可以 利用它来循环媒体项目或创建画廊。
以下功能可以帮助您入门:
您可以使用:wp_get_attachment_image_src()
检索图像src$img= wp_get_attachment_image_src($attachmentID, $imageSizeName);
您可以使用get_post_field()
获取图片标题get_post_field('post_excerpt', $attachmentID)
您可以使用:get_post_meta()
获取alt标记get_post_meta($attachmentID, '_wp_attachment_image_alt', true);
答案 1 :(得分:7)
首先获取图片
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 . '" alt="" />';
}
$html .= '</div>';
return $html;
}
并使用php fire event
<?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' );
}
?>
答案 2 :(得分:3)
请尝试以下代码:
<?php
$attachmentID = 1875;
$imageSizeName = "thumbnail";
$img = wp_get_attachment_image_src($attachmentID, $imageSizeName);
//print_r($img);
?>
<img src="<?php echo $img[0]; ?>" alt="image">
答案 3 :(得分:0)
这么多复杂的问题,我认为错误的答案很简单:
<?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
属性包含附件的替代数据。因此,此答案不能完全满足OP的要求,OP还要求包括title
,description
和caption
字段。有关如何包括这些其他字段的信息,请参阅接受的答案或其他答案。