exclude roles from overview

时间:2018-03-04 作者:AKNL

我在一个新网站上重新使用了一些旧代码,在那里我以最后一张帖子图片为背景显示列表中的所有用户。这一切都很好(我知道get\\u users\\u of\\u blog不受欢迎,但当我使用get\\u users时,我的代码会中断)。。。

<?php
$blogusers = get_users_of_blog();
if ($blogusers) { 
  foreach ($blogusers as $bloguser) { 
    $args = array( 
      \'author\' => $bloguser->user_id, 
      \'showposts\' => 1,
      \'caller_get_posts\' => 1
    ); 
    $my_query = new WP_Query($args); 

    if( $my_query->have_posts() ) { 
      while ($my_query->have_posts()) : $my_query->the_post(); ?>  
        ...........
      <?php endwhile; 
    } 
  } 
} 
?> 
问题是我无法按名称排序,也无法将作者排除在列表中。我试过这么做

$blogusers = get_users_of_blog(array(\'role\' => \'editors\', \'orderby => ID));
但这并不是什么坏事。任何人非常感谢。

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

是的get_users_of_blog() 函数已弃用,并且代码在使用后中断的原因get_users()->user_id 零件,您应该使用->ID 相反

$blogusers = get_users();

if ($blogusers) { 

  foreach ($blogusers as $bloguser) { 

    $args = array( 
      \'author\'           => $bloguser->ID, 
      \'showposts\'        => 1,
    ); 

    $my_query = new WP_Query($args); 

    if( $my_query->have_posts() ) { 
      while ($my_query->have_posts()) : $my_query->the_post(); ?>  
        ...........
      <?php endwhile; 
    } 

  } 

} 
如果您在多站点上,则应设置blog_id 的参数get_users 到您的博客ID。

现在,关于排除作者。如果你看看author parameters 属于WP_Query(), 有一个author__not_in 接受作者ID数组的参数。因此,要排除test 角色,设置role__inrole 的参数get_users()test, 然后将结果用于WP_Query(). 你没有提供准确的细节,所以我不确定你到底在照顾什么,但这些应该可以解决问题。

结束

相关推荐

为什么wp_users表中的USER_PASS列是varchar(64)

在处理项目时,我发现“wp\\u users”表中的“user\\u pass”列是varchar(64)。WordPress总是将用户密码存储在md5中,md5是一个32字符的ASCII字符串。那么,为什么不将其存储在具有ascii排序规则的char(32)中呢。我这样问是因为我正在处理一个存储用户密码的表。使用varchar(64)还有其他好处吗。