破碎?WP_Query和“附件”作为帖子类型


18

我在页面上附有图库。在该页面上,我正在运行以下查询:

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'status' => 'inherit', // Inherit the status of the parent post 
    'orderby' => 'rand', // Order the attachments randomly  
    )
);

我已经尝试了很多方法,由于某种原因,我无法获得附件以退回。我在这里错过明显的东西吗?

更新*

感谢Wok为我指明了正确的方向。

原来我使用的是“状态”而不是“ post_status”。该法典在“附件”帖子类型的上下文说明中以“状态”为例。我更新了法典以引用“ post_status”。正确的代码如下:

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
    'orderby' => 'rand', // Order the attachments randomly  
    )
);  

我想知道post_status设置为'null'与'inherit'有什么区别
Wok

'post_status' => 'inherit' 谢谢,您为我省下了很多痛苦!
Pat

Answers:


14

这些是我使用的查询参数...当我遍历结果时对我有用

array(
                'post_parent' => $post->ID,
                'post_status' => 'inherit',
                'post_type'=> 'attachment',
                'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'                  
            );

13

添加$args,这一点很重要。

'post_status' => 'any'

不要: 'post_status' => null

因为附件没有这一点很重要post_status,这样的默认值post_statuspublished会发现没有附件。


请尽力解释答案,而不是仅仅发布一行或两行代码。
s_ha_dum 2013年

是的,这怎么运作的?在添加此附件之前,我无法将其附件显示在存档页面中。
克莱尔

0

查看它生成的查询,它的确似乎是一种错误。当附件的数据库中的条目实际上是“继承”时,“状态” =>“继承”被解释为父级的状态。

一种替代方法是使用get_children代替WP_Query。


0

我已经能够使用此代码显示帖子附件的所有图像。

<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
    if ($attachments) {
    foreach ( $attachments as $attachment ) { ?>
      <img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php   }
    } ?>

要回显原始全尺寸图片的网址,您可以将该图片链接到

<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>

希望这是您要执行的操作的一种方法。


分页与此有关吗?您可以显示其余的输出代码吗?我正在重新编码主题库,以实际对页面上的附件进行分页。谢谢!

如果我将4张图片上传到帖子,然后将其添加到single.php中的主要内容条目div中,它只会吐出4张图片标签。每个的src =将导致原始的大图像尺寸。分页对此不起作用,因为它会散发附加到该帖子的所有图像。
乍得·冯·林德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.