Sidebar上5位不同作者的最新5篇帖子摘录

时间:2011-07-06 作者:Adrian

我试图在我的博客侧栏中显示来自5位不同作者的最新5篇文章摘录。下面是我使用的代码,我从这个线程中调整了它:Find most recent authors

到目前为止,我已经让它发挥了作用,但它并没有显示每个作者的最新帖子,而是显示了作者最早的帖子。你知道我做错了什么吗?我已经为此挣扎了几天了,所以非常感谢你能给我任何指导。我是PHP的新手,但能理解足够多的代码。谢谢您可以看到它在我的网站上工作:wearestd.com

<?php
global $wpdb;

$post_IDs = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type = \'post\' AND post_status = \'publish\' GROUP BY post_author ORDER BY post_date DESC LIMIT 5" );

$my_query = new WP_Query( array( \'post__in\' => $post_IDs) );

if( $my_query->have_posts() ) {
  while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php userphoto_the_author_thumbnail() ?>
<div id="author_excerpt"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><h4><?php the_title(); ?></h4><br />
<?php the_advanced_excerpt(\'length=50\'); ?></a>
<?
endwhile;
}
?>

1 个回复
SO网友:Adrian

我想我已经明白了。这是我使用的代码this thread 在WP支持论坛上。只需更换()<?php the_author_posts_link(); ?>() 使用您想要使用的任何摘录代码。瞧!

<?php
//list 5 latest authors
$authors =  array();
$count = 0;
$args=array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'caller_get_posts\'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts() && $count < 5) : $my_query->the_post();
$author_id=$my_query->post->post_author;
if (!in_array($author_id,$authors)) { ?>
<?php the_author_posts_link(); ?>
<?php $count++;
$authors[]=$author_id;
}
endwhile;
}
wp_reset_query();  // Restore global post data stomped by the_post().
?>

结束