WordPress多作者站点:无发布文章作者页面头像显示问题求助
解决未发布文章作者的头像显示问题
问题出在你代码的else分支里:当作者没有发布任何文章时,get_the_author_meta('ID')没办法正确获取到当前访问的作者ID——因为这个函数默认依赖主循环中的文章数据来提取作者信息,而此时主循环是空的,它大概率会返回当前登录用户的ID(甚至空值),自然加载不出目标作者的头像。
好在你已经在else分支里通过$author = get_queried_object();拿到了当前被访问的作者对象,直接用这个对象的ID传入get_avatar()就能解决问题。
修改后的else分支代码如下:
else : $author = get_queried_object(); ?> <header class="page-header"> <h1 class="page-title"> <?php echo $author->first_name . ' ' . $author->last_name; ?> </h1> <div class="author-wrapper" style="width:100%; white-space:nowrap; display:inline !important"> <div class="author-photo" style="display:inline-block; width:10%; "> <?php echo get_avatar( $author->ID ); // 这里替换成$author->ID ?> </div> <div class="author-bio" style="display:inline-block; width:85%; padding-left:20px; "> <?php echo $author->description; ?> </div> </header><!-- .page-header --> <?php endif;
如果想更严谨,还可以给get_avatar加上默认头像参数,确保即使作者没设置头像也能显示占位图:
echo get_avatar( $author->ID, 96, 'mm' ); // 96是头像尺寸,'mm'是WordPress默认的神秘人头像
内容的提问来源于stack exchange,提问作者Websketchie




