wordpress查询顺序按作者角色

时间:2018-10-17 13:09:10

标签: php mysql wordpress

我有多位作者扮演不同的角色,我需要按作者的角色来排序帖子。
例如:有3位作者,其角色分别是:管理员,编辑,客户,并且所有人都可以发布帖子。
现在,如何按作者角色订购网站的帖子?

ADMIN的第一篇帖子
第二位EDITOR帖子
和最后一个客户帖子?

1 个答案:

答案 0 :(得分:1)

请使用以下代码按用户角色获取帖子:

 function get_posts_by_role_user($role) {
    global $wpdb;
    return $wpdb->get_results( "SELECT ps.* FROM {$wpdb->posts} ps, {$wpdb->usermeta} ur"
                                ." WHERE    ps.post_type     = 'post'"
                                ." AND      ps.post_status   = 'publish'"
                                ." AND      ur.user_id       = ps.`post_author`"
                                ." AND      ur.meta_key      = 'wp_capabilities'"
                                ." AND      ur.meta_value    LIKE '%\"{$role}\"%'" );
}

声明所有角色

  $roles = array('admin','editor','customer');

根据角色循环

 foreach($roles as $key => $role  ){
      $user_posts = get_posts_by_role_user($role);
        foreach($user_posts as $spost){ 
          echo $spost->post_title, '<br />';
        }
   }

粘贴当前活动主题 functions.php 文件中的所有代码。