2

我正在尝试获取当前作者档案的作者姓名:

if (is_author()) return AUTHOR_NAME;

但是我怎样才能得到当前的作者姓名呢?

4

5 回答 5

2

这实际上有一个有趣的技巧。在作者档案中,您对查询中的所有帖子了解的一件事是它们都出自您想要的作者。无论如何,您想要的功能是get_the_author()

如果您在进入(甚至退出)循环之后想要作者姓名,则加载的最后一篇文章将由作者撰写,使用get_the_author()就足够了。

另一方面,如果您在进入循环之前想要作者姓名,则需要加载第一篇文章的数据,然后在进入循环之前回退查询,如下所示:

if ( have_posts() ) {
    the_post();
    $author = get_the_author();
    rewind_posts();
}

如果您根本不需要循环,则可以跳过倒带。

如果查询中没有帖子,您的工作会稍微艰难一些。

于 2013-09-27T21:50:01.257 回答
1

你可以这样做:

the_post();
$author_name = get_the_author();
rewind_posts();
于 2013-09-27T21:43:04.707 回答
1
global $wp_query;
$author = get_user_by('slug', $wp_query->query_vars['author_name']);
于 2014-07-14T09:57:59.220 回答
0

这将显示当前页面/帖子的作者:

<?php echo get_the_author() ; ?>
于 2014-02-13T15:26:10.733 回答
0

无需rewind_posts()技巧:

$qo = get_queried_object();
$author = $qo->data->display_name;
于 2018-04-25T14:28:56.633 回答