首先,我在中有一个自定义函数functions.php
这会得到一些作者信息。这对一个作者写的单篇文章很有用。
<?php function the_author_box() { ?>
<div class="widget about-the-author-widget">
<h3 class="widget-title">Over de auteur</h3>
<div class="author-header clear">
<div class="author-avatar-wrap"><?php echo get_avatar(get_the_author_meta( \'ID\' )); ?></div>
<h4 class="author-name"><?php the_author_meta(\'display_name\'); ?></h4>
</div>
<div class="author-description"><p><?php the_author_meta(\'description\'); ?></p></div>
<ul class="author-meta">
<?php if ( get_the_author_meta( \'url\' ) ) { ?>
<li class="url">
<a href="<?php the_author_meta( \'url\' ); ?>" title="De website van <?php the_author_meta( \'display_name\' ); ?>">Website</a>
</li>
<?php // a lot more metas ?>
</ul>
</div>
<?php
} ?>
但现在,我正在设计一个自定义页面模板,为每个参与者或管理员用户显示“the\\u author\\u box”。都在同一页上。
我想我可以通过这样做获得用户(从stackexchange借用)。构建新功能:
function get_clients() {
$users = array();
$roles = array(\'author\', \'contributor\', \'administrator\');
foreach ($roles as $role) :
$users_query = new WP_User_Query( array(
\'fields\' => \'all_with_meta\',
\'role\' => $role,
\'orderby\' => \'display_name\'
) );
$results = $users_query->get_results();
if ($results) $users = array_merge($users, $results);
endforeach;
return $users;
}
调用用户,并为每个用户执行函数:
<?php
$users_array = get_clients();
foreach ($users_array as $user) {
$user->the_author_box();
?>
但这行不通。我在猜测,因为它仍然是“作者元”,而不是用户的元。
如何调用函数$user->function()
. 换句话说,我如何从该用户那里获取元信息?
SO网友:kaiser
首先,始终var_dump()
如果你不确定自己到底得到了什么。如果没有安装和配置XDebug,只需使用
printf( \'<pre>%s</pre>\', htmlspecialchars( var_export( $dumpMe, true ) ) );
这将带来同样丰富的信息。
关于WP_User_Query
) IIRC返回的对象是WP_User
. 你可以用
$user instanceof WP_User AND print \'Yes, I am a WP_User object\';
如果是这样,只需使用
var_dump( get_user_meta( $user->user_id ) );
你应该没事的。顺便说一句,没有真正的作者元。