在主页上显示最近上传的12张图片,但仅显示来自帖子的图片

时间:2015-10-18 作者:Henning Fischer

我想在我的头版上展示最近12张与文章一起发布的图片。这是获取最新12张上传图片的代码,但我只想显示贴在帖子上的图片(单张)。有什么想法吗?

<?php

    $args = array(
        \'post_type\' => \'attachment\',
        \'numberposts\' => 12,
        \'post_status\' => inherit,
    );

    $attachments = get_posts( $args );
    if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
        echo \'<li>\';
        echo wp_get_attachment_image( $attachment->ID, array(\'90\', \'90\') );
        echo \'</li>\';
        }
    }

?>

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我没有对此进行测试,但逻辑上……;)

贴在帖子上的图片应该有post_parent 大于零,最新的帖子(帖子家长)的ID最高,尽管长期的选秀帖子可能会稍微偏离这一点。所以,如果你按post_parent 降序你应该有12个与你的帖子相关的附件。

$args = array(
    \'post_type\' => \'attachment\',
    \'posts_per_page\' => 12, // numberposts is long since deprecated in WP_Query
    \'post_status\' => inherit,
    \'orderby\' => \'post_parent\',
    \'order\' => \'DESC\'
);
现在,如果您从页面和CPT获取附件,您将需要一个更复杂的解决方案,并且必须查询您的帖子以获取ID,然后提取附件。

知道如何获取父帖子/页面的链接吗?我尝试了“get\\u permalink($post->post\\u parent)”,但它只提供了最新的帖子。(摘自下面的评论)

代码的编写方式$post 不会设置全局。你需要的是$attachment->post_parent. 或者,根据我的喜好,跳过get_posts() 包装和使用WP_Query 自身:

$args = array(
    \'post_type\' => \'attachment\',
    \'posts_per_page\' => 12, // numberposts is long since deprecated in WP_Query
    \'post_status\' => \'inherit\',
    \'orderby\' => \'post_parent\',
    \'order\' => \'DESC\'
);
$attachments = new WP_Query( $args );
if ( $attachments->have_posts() ) {
    while ( $attachments->have_posts() ) {
      $attachments->the_post();
      var_dump($post->post_parent); // now it is set
      echo \'<li>\';
      echo wp_get_attachment_image( $post->ID, array(\'90\', \'90\') );
      echo \'</li>\';
    }
}

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post