我有多位作者扮演不同的角色,我需要按作者的角色来排序帖子。
例如:有3位作者,其角色分别是:管理员,编辑,客户,并且所有人都可以发布帖子。
现在,如何按作者角色订购网站的帖子?
ADMIN的第一篇帖子
第二位EDITOR帖子
和最后一个客户帖子?
答案 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 文件中的所有代码。