wp_list_authors()
, 内部获取仅属于类型的帖子post
. 参见第294行http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/author-template.php#L273
正如你所指出的,this 答案是伟大的,经过一些修改可以做你想要的。
function wpse31443_author_has_custom_post_type( $post_author, $post_type ) {
global $wp_post_types; // If nonexistent post type found return
if ( array_intersect((array)$post_type, array_keys($wp_post_types))
!= (array)$post_type ) return false;
static $posts = NULL; // Cache the query internally
if ( !$posts ) {
global $wpdb;
$sql = "SELECT `post_type`, `post_author`, COUNT(*) AS `post_count`".
" FROM {$wpdb->posts}".
" WHERE `post_type` NOT IN (\'revision\', \'nav_menu_item\')".
" AND `post_status` IN (\'publish\', \'pending\')".
" GROUP BY `post_type`, `post_author`";
$posts = $wpdb->get_results( $sql );
}
foreach( $posts as $post ) {
if ( $post->post_author == $post_author
and in_array( $post->post_type, (array)$post_type )
and $post->post_count ) return true;
}
return false;
}
你已经知道如何
get_users
, 因此,设置一个简单的
foreach
循环并将用户ID输入到新函数中。
我已经在某种程度上测试了该函数,它应该可以正常工作,但可能需要一些调整。如果您有任何问题和/或我如何改进我的答案,请告诉我。