What I want: https://i.stack.imgur.com/N4VAt.png (sorry for linking out, I am a new user here so can't post an image inline)
How does one list posts by an author within a category, with a count for each category, on the author archive page?
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityWhat I want: https://i.stack.imgur.com/N4VAt.png (sorry for linking out, I am a new user here so can't post an image inline)
How does one list posts by an author within a category, with a count for each category, on the author archive page?
Not the most efficient way but it works, put this in your theme's functions.php
function author_post_breakdown($author_id){
//get all post of this author
$n = get_posts(array(
'author' => $author_id,
'posts_per_page' => -1,
'fields' => 'ids'
)
);
$cats= array();
//loop over all post of this author and get the categories for each post
foreach((array)$n as $id){
$cs = wp_get_object_terms($id, 'category');
//loop over each category of the post and add the counter
foreach($cs as $c){
if (isset($cats[$c->slug])){
$cats[$c->slug]['count'] = $cats[$c->slug]['count'] + 1;
}else{
$cats[$c->slug]['count'] = 0;
$cats[$c->slug]['name'] = $c->name;
}
}
}
foreach($cats as $sl => $arr)
$retVal = '<li><a href="'.get_term_link($slug, 'category').'">'.$arr['name'].'('.$arr['count'].')</a></li>';
return $retVal;
}
and in your author.php add this:
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $_GET['author_name']) : get_userdata($_GET['author']);
echo '<ul>'.author_post_breakdown($curauth->ID).'</ul>';