我想在侧边栏上显示最新的帖子标题和缩略图。 到目前为止,我正在获得帖子标题,只有一个缩略图重复。 您可以看到结果here。(仅显示第一个/最旧的帖子图像)
这是我的代码:
$rps = wp_get_recent_posts($params);
foreach($rps as $rp) :
$args = array(
'post_type' => 'attachment',
'numberposts' => 1,
'post_status' => null,
'post_parent' => $post->ID
);
$attachment = current(get_posts( $args ));
?>
<a href="<?php echo get_permalink($rp['ID']);?>"><?php echo $rp['post_title'];?><?php echo wp_get_attachment_image( $attachment->ID, 'thumbnail' );?></a>
<?php endforeach; ?>
感谢您提供的任何提示/帮助。
答案 0 :(得分:3)
将'post_parent' => $post->ID
替换为'post_parent' => $rp['ID']
。而已。
你正在做的是,你在所有帖子的$ args中传递当前帖子的ID。
答案 1 :(得分:-1)
运行2 queries
一个输出第一个帖子。第二个输出除第一个之外的所有其他内容
<?php $args = array( 'post_type' => 'attachment', 'posts_per_page' => 1, 'post_parent' => $post->ID);
$first = new WP_Query( $args );
while ( $first->have_posts() ) : $first->the_post(); ?>
<a href="<?php echo get_permalink();?>"><?php the_title();?><?php echo wp_get_attachment_image( $first->ID, 'thumbnail' );?></a>
<?php endwhile; wp_reset_postdata(); ?>
<?php $args2 = array( 'post_type' => 'attachment', 'posts_per_page' => 1, 'post_parent' => $post->ID, 'offset' => 1);
$rest = new WP_Query( $args2 );
while ( $rest->have_posts() ) : $rest->the_post(); ?>
<a href="<?php echo get_permalink();?>"><?php the_title();?><?php echo wp_get_attachment_image( $rest->ID, 'thumbnail' );?></a>
<?php endwhile; wp_reset_postdata(); ?>