More posts from the current author

The question:

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?

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

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 ) . '" rel="nofollow noreferrer noopener">' . 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.

Method 2

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.

Method 3

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.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment