如何根据作者ID获取作者姓名

时间:2013-10-23 作者:ironsand

我想展示最近的帖子。

<ul id="recent-posts">
  <?php foreach( wp_get_recent_posts() as $recent ){ ?>
    <li>
      <a href="<?php echo get_permalink($recent[\'ID\']); ?>">
    <?php echo $recent["post_title"]; ?> by
    <?php echo $recent["post_author"]; ?>
      </a>
    </li>
  <?php } ?>
</ul>
但是$recent["post_author"] 仅返回作者的id。这个在外面The Loop, 所以我不能用the_author() 作用

如何从ID中获取作者姓名?还是有更好的方法?

4 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

尝试get_user_by():

get_user_by( $field, $value );
在您的情况下,您需要传递ID和用户ID:

// Get user object
$recent_author = get_user_by( \'ID\', $recent["post_author"] );
// Get user display name
$author_display_name = $recent_author->display_name;

SO网友:Oleg Butuzov

echo get_the_author_meta(\'display_name\', $recent["post_author"]);
// code from deprecated.php function @get_author_name
更多示例get_the_author_meta($meta_key, $author_id) 你可以在Codex找到。

SO网友:josh

这个wp_posts 表,这是您正在查询的表wp_get_recent_posts() 不包括作者姓名列。它只携带作者ID(正如您已经发现的那样)。

所以,你要做的是使用另一个WordPress函数get_user_by(). 这将允许您获取作者ID,并找到相应的作者名称。

像这样的方法应该有效(未经测试):

<ul id="recent-posts">
<?php foreach( wp_get_recent_posts() as $recent ){

    $user_id = get_user_by(\'id\', $recent["post_author"]);  // Get user name by user id
        ?>
        <li>
        <a href="<?php echo get_permalink($recent[\'ID\']); ?>">
        <?php echo $recent["post_title"]; ?> by
        <?php echo $user_id->display_name; ?>
        </a>
        </li>
    <?php 
    } ?>
</ul>

SO网友:Znith

在您的情况下,这可能会起作用:

<?php $user_info = get_userdata($recent["post_author"]);
echo $user_info->user_login; ?>

结束

相关推荐

变量在is_Author()数组中不起作用

我正在使用一个插件(用户组)将用户分为多个组,我需要找出一种方法来创建一个条件,以检查作者是否在某个组中。因此,使用get\\u term\\u by和get\\u objects\\u in\\u term,我能够构建一个作者ID字符串。见下文:$taxonomy = \'user-group\'; $taxonomy_group_name = \'author-group\'; $taxonomy_group_id = get_term_by(\'slug\' , $taxonomy_