显示没有帖子的作者的作者档案页面

时间:2012-02-03 作者:honk31

每个作者有一个页面,但如果作者没有任何帖子,我就无法获取其变量,因为循环是空的。页面返回空的,没有头像,没有信息和东西,整个网站是空的。

如果没有帖子,我如何让WordPress拉出author变量(为什么没有作者,但我在作者页面上)。。?

我用twentyeleven作为家长主题。

5 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

要访问author归档上循环之外的author用户对象,可以执行以下操作:

global $curauth;
$curauth = (isset($_GET[\'author_name\'])) ? get_user_by(\'slug\', $author_name) : get_userdata(intval($author));
echo \'This is the author page of \'.$curauth->display_name;

SO网友:Beppe Roncari

我搞定了!就我而言,我首先创建了一个作者。归档文件中的php页面(我的主题缺少一个)。通过克隆和清理php。然后我找到了这段代码:

<?php if ( have_posts() )  : ?>
它基本上说:如果作者发表了一些帖子,那么。。。好吧,我只是补充道:“否则!”

<?php if ( have_posts() || !have_posts() )  : ?>
它工作得很好(see here)! “是否”是|| = 或“和”! = 不是”。

此外,我不得不改变模板检索作者头像的方式,因为get_avatar 如果作者/用户尚未发布任何内容,或者他/她的帖子仍然是“私有”而非“公共”,则无法正常工作。

我研究了法典,得出了以下解决方案。而不是:

echo get_avatar( get_the_author_meta( \'ID\' ), 80 );
我使用:

get_avatar( $curauth->ID, 80 );
您必须设置$curauth 变量正确后的第一件事get_header 不过,功能。

get_header(); 
$curauth = (get_query_var(\'author_name\')) 
    ? get_user_by(\'slug\', get_query_var(\'author_name\')) 
    : get_userdata(get_query_var(\'author\'));

SO网友:powtac

我曾经写过一个叫Wordpress的插件

Show authors without posts

请随意使用它。。。

SO网友:JPollock

您可以使用以下功能将404重定向回作者模板:

function slug_show_authors_without_posts( $template ) {
    global $wp_query;

    if ( $wp_query->query_vars[ \'post_type\' ] === \'author\' ) {

        return get_author_template();
    }

    return $template;
}
add_filter( \'404_template\', \'slug_show_authors_without_posts\' );
使用此解决方案时,需要记住两件重要的事情:1)这打破了模板层次结构的回退系统。所以如果你的主题没有作者。php,您将遇到一个新问题,因为它不会回退到索引。就像你习惯的那样。

TL;博士,你必须有作者。主题中的php。

2) 这并没有解决大多数作者的问题。php模板测试作者是否有帖子,如果没有,则不返回帖子警告。您需要修改或删除作者中的循环。php来防止这种情况。

TL;DR您的作者。php的设计可能是为了避免这种情况。你需要解决这个问题。

SO网友:Jack Miller

get_query_var(\'author\') 将为您提供打开页面的用户ID(例如,用户IDfoo 对于URL/author/foo/) 无论给定用户是否有帖子。

结束

相关推荐

定制帖子类型作者的_Author_Posts_link()

我在博客中既有常规的博客帖子,也有自定义的帖子类型。页面模板显示作者帖子链接。如果您单击该链接查找撰写过一些文章的作者,该页面(博客/作者/作者先生)将显示预期的个人信息和作者的文章列表。但是,如果您创建的用户是作者,但只编写了自定义帖子类型,没有常规帖子,则由\\u author\\u posts\\u link()生成的链接(仍然是正确的链接:blog/authors/mr author)显示一个未填充的页面(即:字段全部为空,帖子列表是所有作者的所有帖子的完整列表)。显然,我们在$authordat