Php Wordpress-在未指定id字段时获取\u作者\u meta()不工作

Php Wordpress-在未指定id字段时获取\u作者\u meta()不工作,php,wordpress,Php,Wordpress,我试图通过get_the_author_meta()函数简单地在我的single.php页面上显示文章作者的姓名和描述,但我只能在用数字填充id字段时让它返回一个值,因为作者会根据文章的不同而变化,这是不理想的。我真的不明白为什么wordpress在默认情况下不能获取当前帖子作者的id。有人能帮我吗 这是我正在使用的代码 <div class="col-8 col-md-10"> <?php $id=get_the_author_meta('

我试图通过get_the_author_meta()函数简单地在我的single.php页面上显示文章作者的姓名和描述,但我只能在用数字填充id字段时让它返回一个值,因为作者会根据文章的不同而变化,这是不理想的。我真的不明白为什么wordpress在默认情况下不能获取当前帖子作者的id。有人能帮我吗

这是我正在使用的代码

<div class="col-8 col-md-10">
        <?php $id=get_the_author_meta('ID'); echo $id ?>//getting the author's id this way doesn't work
        <h2><?php echo get_the_author_meta('nickname',1);?></h2>//this works but only because I filled the id field with a valid number
        <p><?php echo get_the_author_meta('user_description') ?></p>//this doesn't workalso
    </div>

//以这种方式获取作者的身份证是行不通的
//这是可行的,但这仅仅是因为我用一个有效的数字填充了id字段

//这也不行
来自:

如果在中使用,则无需指定用户ID,它默认为当前文章作者。如果在外部使用,则必须指定用户ID


根据你的分享,如果没有用户ID,它将无法工作,我怀疑你不在循环中。如果看不到更多的
single.php
模板,很难说,所以如果你能分享更多,那会有帮助。

设法使用get\u post\u字段('post\u author')解决了这个问题。我不是在循环中,而是在一篇普通的文章中,所以我需要使用这个函数来获取作者的id,并且从中我设法使其余的工作正常

这是密码

<div class="col-8 col-md-10">
        <?php $id=get_post_field( 'post_author' )?>
        <h2><?php echo get_the_author_meta('first_name',$id).' '.get_the_author_meta('last_name',$id);?></h2>
        <p><?php echo get_the_author_meta('user_description',$id) ?></p>
    </div>


single.php
默认情况下处于循环中。@因为这不一定是真的;WordPress在访问单个帖子时将使用
single.php
,正如OP在中提到的,它们不在循环中。我认为我们在争论语义,因为模板层次结构将调用
single.php
,您不需要循环,因为WP已经在层次结构中调用了它。在这里查看关于已接受答案的第一条评论:正如您链接到的答案所指出的,您仍然需要参与循环。也就是说,您的
single.php
需要包含
while
循环。模板层次结构仅规定WordPress加载的PHP文件;如果加载的内容没有定义循环,那么就没有循环!如果这是你正在看的文章的元数据,你可能希望重构一些东西,使其在循环中,但是如果这行得通,那就太好了!