我已经将一些代码合并在一起,为WordPress创建了一个侧栏小部件,它可以在列表中显示所有非订阅用户(即编辑器、贡献者和管理员)。
它还显示用户职务标题的自定义字段。
user_role自定义字段通过高级自定义字段插件创建。
目前,这是很好的工作,但现在有一个要求,以隐藏特定的用户名单。我实现了另一个字段:真/假框。当勾选时,它应该在列表中显示用户。
user_hide目前,我尝试过的一切都没有显示用户,也没有显示所有用户。
下面是处于原始状态的foreach用户,它将只显示不具有“订阅者”角色的用户。
foreach($allUsers as $currentUser)
{
if(!in_array( 'subscriber', $currentUser->roles ))
{
$users[] = $currentUser;
}
}现在,它也需要“如果自定义字段是真”,但我不知道如何得到,但工作。在数据库中,在用户元下,键"author_hide“显示vlaue "1”表示true,"0“表示false。
我尝试了以下方法,但它仍然显示与原始用户相同的用户列表,尽管它已经遍历了所有用户,并在适当的情况下进行了滴答/保存:
$user_query = new WP_User_Query( array( 'meta_key' => 'author_hide', 'meta_value' => '1','meta_compare' => '==' ) );
foreach($allUsers as $currentUser)
{
if(!in_array( 'subscriber', $currentUser->roles ) && $user_query)
{
$users[] = $currentUser;
}
}有什么想法吗?
以下是目前的职能:
function contributors() {
$allUsers = get_users('orderby=name&order=ASC');
$users = array();
echo '<ul class="authors-list">';
foreach($allUsers as $currentUser)
{
if(!in_array( 'subscriber', $currentUser->roles ))
{
$users[] = $currentUser;
}
}
foreach($users as $user)
{
?>
<li class="author-left author-light rounded-corners">
<div class="rounded-corners">
<div class="rounded-corners">
<a href="<?php echo get_author_posts_url( $user->ID ); ?>">
<strong><?php echo $user->display_name; ?></strong>
<br>
<?php $user_role = get_user_meta($user->ID, 'author_role', true); if($user_role != '') { echo $user_role; } ?>
</a>
</div>
</div>
<div class="pic">
<a href="<?php echo get_author_posts_url( $user->ID ); ?>"><?php echo get_avatar( $user->user_email, '50' ); ?></a>
</div>
</li>
<?php
}
echo '</ul>';}
发布于 2014-06-21 15:37:58
在循环中,您可以使用高级自定义字段API为每个用户获取自定义字段。我会这样做:
foreach($allUsers as $currentUser) {
$hide = get_field('user_hide', 'user_' . $currentUser->ID);
if(!in_array( 'subscriber', $currentUser->roles ) && !$hide ) {
$users[] = $currentUser;
}
}请注意,高级自定义字段要求您在调用user_时使用字符串get_field()在用户ID之前加上用户ID,这样函数就知道您没有尝试获取一个post。
更多信息可以找到在他们的文件里。
https://stackoverflow.com/questions/24342620
复制相似问题