On a multi author WordPress blog I need to show a list with more posts from the current author. The list is inside the Loop, so I can use <?php the_author_meta('first_name'); ?> <?php the_author_meta('last_name'); ?>
and <?php the_author_meta('description'); ?>
, but how to retrieve the user's posts?
3 Answers
This will retrieve the posts of current author when used in the loop.
Put the following in your theme functions.php:
function my_get_display_author_posts() {
global $authordata, $post;
$authors_posts = get_posts( array( 'author' => $authordata->ID, 'post__not_in' => array( $post->ID ) ) );
$output = '<ul>';
foreach ( $authors_posts as $authors_post ) {
$output .= '<li><a href="' . get_permalink( $authors_post->ID ) . '">' . apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID ) . '</a></li>';
}
$output .= '</ul>';
return $output;
}
And add echo my_get_display_author_posts();
in your template file, within the loop where you want the posts displayed.
-
1Good answer and for users with performance in mind, you could wrap that functionality into an Ajax callback for fetching those posts on demand.– t31osCommented Jan 4, 2011 at 16:54
-
How would you use this outside of the loop?– user3231Commented Feb 16, 2011 at 23:06
I think you can use the wordpress query_posts function for this. Take a look at http://codex.wordpress.org/Function_Reference/query_posts . This might not be enough to do what you need, but should get you started looking around the function reference.
-
query_posts()
shouldn't be used for anything other than modifying main Loop. For everything else there areget_posts()
orWP_Query
object.– RarstCommented Dec 31, 2010 at 9:51 -
Use get_posts()
with Author Parameters (they are in query_posts()
documentation, but these two function mostly takes same arguments).
Do not use query_posts()
for this, it's meant for modifying main page's Loop.
-
I tried but without success, because this retrieves the posts from specific author. My list should show on a page with posts from many authors and I would like to show "more from this author" after/around each post of every author.– DimitarCommented Jan 1, 2011 at 13:29
-
@Dimitar well the point kinda is retrieving post from specific author... If you need it several times - just retrieve several sets of post, providing different authors in parameters.– RarstCommented Jan 1, 2011 at 19:03