我认为这是网站拥有“图片”页面的简单方法,该页面仅从媒体中提取所有图像画廊,因为它仅在某些情况下才是必需的。
我不需要有关如何创建“图片”页面的说明,只需了解如何提取所有图像URL。谢谢!
#1 楼
$query_images_args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post_status' => 'inherit',
'posts_per_page' => - 1,
);
$query_images = new WP_Query( $query_images_args );
$images = array();
foreach ( $query_images->posts as $image ) {
$images[] = wp_get_attachment_url( $image->ID );
}
所有图像URL现在都在
$images
中; 评论
嗯..看起来@somatic击败了我。与上面的解决方案不同,我的只能获取图像。
–阿济祖尔·拉曼(Azizur Rahman)
2011-3-12在22:19
显然,我们的方法是相似的...并且azizur是正确的,将'post_mime_type'添加到任一查询中将缩小返回的类型。要考虑的一件事:Guid通常确实包含图像的完整URL,但这不是可靠的来源。它是静态的,仅在创建帖子时生成一次,并且是基于当前站点url和媒体文件夹结构构建的。但是该文件夹的结构和域可能会在某个时候发生变化,然后guid不再是实际的图像URL,而只是它创建时的记录...
–体细胞
2011-3-13在3:43
这个答案是错误的。它不会从媒体库获取图像。它获取帖子内部使用的图像。找不到未使用的图像!
–基督徒
2011-10-10 12:38
@Christian-错了吗?还是我应该问“仍然”错误?我意识到我将在大约2年后发表评论,但是我在WP 3.6上进行了尝试,并且收到的图像是我刚刚添加到媒体库中的,而没有将它们添加到任何帖子中:/
–克里斯·肯彭(Chris Kempen)
13年8月16日在17:19
可能是一个愚蠢的问题,但是我现在将如何获得不同的图像尺寸?
– Frederik Witte
16年7月17日在14:31
#2 楼
$media_query = new WP_Query(
array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
)
);
$list = array();
foreach ($media_query->posts as $post) {
$list[] = wp_get_attachment_url($post->ID);
}
// do something with $list here;
在数据库中查询所有媒体库项目(不仅是贴在帖子上的项目),获取它们的URL,并将它们全部转储到
$list
数组中。#3 楼
<?php
$attachments = get_children( array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' =>'image') );
foreach ( $attachments as $attachment_id => $attachment ) {
echo wp_get_attachment_image( $attachment_id, 'medium' );
}
?>
这会拉出帖子/页面的所有附件。
将更多图像添加到帖子,它将被列出
#4 楼
好的,您可以使用此代码在媒体库中显示所有图像!$args = array(
'post_type' => 'attachment',
'post_status' => 'published',
'posts_per_page' =>25,
'post_parent' => 210, // Post-> ID;
'numberposts' => null,
);
$attachments = get_posts($args);
$post_count = count ($attachments);
if ($attachments) {
foreach ($attachments as $attachment) {
echo "<div class=\"post photo col3\">";
$url = get_attachment_link($attachment->ID);// extraigo la _posturl del attachmnet
$img = wp_get_attachment_url($attachment->ID);
$title = get_the_title($attachment->post_parent);//extraigo titulo
echo '<a href="'.$url.'"><img title="'.$title.'" src="'.get_bloginfo('template_url').'/timthumb.php?src='.$img.'&w=350&h=500&zc=3"></a>';
echo "</div>";
}
}
,如果您知道显示分页的方法,请回答。
#5 楼
看起来好像已经有一段时间没有更新了,但是Media Library Gallery插件可能是一个很好的例子。#6 楼
这只是使用get_posts()
和array_map()
的答案的简短版本。$image_ids = get_posts(
array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post_status' => 'inherit',
'posts_per_page' => - 1,
'fields' => 'ids',
) );
$images = array_map( "wp_get_attachment_url", $image_ids );
评论
这是最优化的方法。您只是在呼叫ID字段,这是唯一需要的字段。
–乌斯曼·艾哈迈德(Usman Ahmed)
20-10-20在6:45
评论
您是说整个媒体库中(即站点范围内)的所有图片吗?