获取所有作者的作者元

时间:2014-02-03 作者:Bram Vanroy

我们从docs 你可以像这样得到一个作者的元数据:

<?php get_the_author_meta( $field, $userID ); ?> 
但我希望有一个自定义的“关于我们”页面,其中显示具有特定角色的用户的所有信息(本例中为管理员和作者)。

假设我在中有一个函数(使用概要文件的自定义字段)functions.php 像这样:

<?php function the_author_box($userid) { ?>
  <div class="author-header clear">
    <div class="author-avatar-wrap"><?php echo get_avatar($userid); ?></div>
      <h4 class="author-name"><?php the_author_meta(\'display_name\',$userid); ?></h4>
    </div>
    <div class="author-description">
      <p><?php the_author_meta(\'description\',$userid); ?></p>
    </div>
    <ul class="author-meta">
      <?php if (get_the_author_meta(\'url\',$userid)) { ?>
        <li class="url">
          <a href="<?php the_author_meta( \'url\',$userid ); ?>" title="De website van <?php the_author_meta( \'display_name\',$userid ); ?>">Website</a>
        </li>
      <?php if (get_the_author_meta(\'twitter\',$userid)) { ?>
        <li class="twitter">
          <a href="http://twitter.com/<?php the_author_meta( \'twitter\',$userid); ?>" title="Volg <?php the_author_meta( \'display_name\',$userid); ?> op Twitter">Twitter</a>
        </li>
      </ul>
    </div>
<?php } ?>
我猜我可以用get_users. 我不需要同时获得所有角色,因此我可以先获得所有管理员,然后获得所有编剧。

$admins = get_users(\'role=administrator&fields=ID\');
$writers = get_users(\'role=author&fields=ID\');
然后调用函数:

<?php 
  foreach ($admins as $user) {
    the_author_box($user);
  }
  foreach ($writers as $user) {
    the_author_box($user);
  }
?>
经过测试,似乎只有页面的作者被调用or 循环中的第一个轮廓。我的个人资料ID(按字母顺序排列的第一个,也是该页面的作者)被放入函数中,但其他的则没有。

我只希望一个用户显示一次,其他配置文件也应该返回,但它们似乎没有循环

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

不太清楚你的任务的目的是什么,因为,为什么通过循环现有用户来获取你想要的数据不合法,确切地说,你必须这样做,获取用户,然后让用户元显示出来-所以我想说,这是合法的。

关于你的方法,需要注意的是get_the_author_meta() 不接受用户对象,它需要用户ID,因此您必须使用fields 的参数get_users() 通过指定它来返回ID数组。像这样:

$admins = get_users(\'role=administrator&fields=ID\');
或者指定fields 参数返回已包含用户元的用户对象。像这样:

$admins = get_users(\'role=administrator&fields=all_with_meta\');
如果要使用后一种选择,则必须更改the_author_box() 相应地发挥作用。

结束

相关推荐

$wpdb in php 5.5

我正在帮助一位朋友更新他们的网站,并将其移动到新的服务器上。他们的旧服务器运行php 5.3.6-13,新站点运行php 5.5。有一个使用$wpdb的自定义插件,允许用户编辑写入数据库中自定义表的一些信息,特别是:$query = \"UPDATE wp_building_plan SET sale_price = \'$sale_price\', available = \'$available\', broker_name = \'$broker_name\', broker_email = \'$