我正在使用Barcelona theme,我需要获得已发布特定类别的作者。
在我的author.php模板中,我有:
$barcelona_authors = get_users( array(
'fields' => 'ID',
'who' => 'authors',
'order' => 'DESC',
'orderby'=> 'post_count'
) );
<?php
foreach ( $barcelona_authors as $barcelona_author_id ) {
barcelona_author_box( $barcelona_author_id, false );
}
?>
如何找到已发布到类别ID 59的作者?
例如,我试过:
$barcelona_authors = get_posts('category=59');
但是我收到了错误。有什么帮助吗?
ERROR:
注意:类WP_Post的对象无法转换为int in 第296行/home/wp-includes/author-template.php
答案 0 :(得分:0)
您的get_posts( 'category=59' )
代码应该有效。我在我的一个测试wordpress安装上测试了以下内容并且它可以工作(当然使用不同的类别ID)。如果您在get_posts
来电期间收到错误,则需要向我们显示错误。
<?php
$category_posts = get_posts( 'category=59' );
$authors_ids = array();
$authors = array();
foreach( $category_posts as $cat_post ) {
$authors_ids[] = $cat_post->post_author;
}
// Not sure if you need more data than just the ID so here is what you need
// to get other fields.
foreach( $authors_ids as $id ) {
$user = get_user_data( $id );
// Display name: $user->display_name;
// Nice name: $user->user_nicename;
// etc...
}
?>
答案 1 :(得分:0)
这是Barcelona theme的解决方案:
$barcelona_posts = get_posts('cat=59');
$barcelona_author_ids = array();
foreach ( $barcelona_posts as $k => $v ) {
if ( ! in_array( $v->post_author, $barcelona_author_ids ) ) {
$barcelona_author_ids[] = $v->post_author;
}
}
$barcelona_authors = get_users( array(
'fields' => 'ID',
'who' => 'authors',
'order' => 'DESC',
'orderby'=> 'post_count',
'include' => $barcelona_author_ids
) );