2013-11-20 123 views
0

我有以下的代码只调用从我的WordPress的“作者”的作者网页,并且必须能够将它们列在客户订单。WordPress的作者页面定制订单

// Get users 
$all_users = get_users('role=author'); 
$allowed_users = array(); 
foreach ($all_users as $user): 
    $wp_user = new WP_User($user->ID); 
    if (!in_array('subscriber', $wp_user->roles)): 
     array_push($allowed_users, $user); 
    endif; 

endforeach; 

// Display users  
foreach ($allowed_users as $user) 
{ ?> 

...显示作者信息的代码。

我需要列出作者在作者ID的顺序为:6,2,5,4,1。这是一个电台网站,所以我想按照他们在播出的顺序列出“作者”。

+0

只是为了澄清:你试图抓住所有的用户,但列出具有的6,2,5,4,1 ID的第一,然后剩下的所有用户?或者只有ID为6,2,5,4,1的用户? – maiorano84

+0

我抓住所有“作者”类型的用户(现在只是这些数字),然后按照该顺序列出。如果在页面上抓取这些作者ID更容易,我很好。当我添加“作者”时,我可以更新代码,因为他们不会经常更改。我显然是新手,只是试图定制我选择的主题。非常感谢帮忙。 – user3015094

回答

0

真的没有自定义排序选项,让你通过ID定义一个特定的顺序,但也有它周围的方式。像这样的东西应该让你开始:

<?php 
$primary_authors = array(6,2,5,4,1); 
$other_authors = new WP_User_Query(array(
    'role'=>'Author', 
    'exclude'=>$primary_authors 
)); 
$authors = array(); 
foreach($primary_authors as $uid) $authors[] = new WP_User($uid); 
foreach($other_authors->results as $user) $authors[] = $user; 
?> 

这是做什么是定义一个非常具体的用户ID顺序,你想首先显示。然后,进行第二个查询,用Author的角色来抓取剩余的用户,排除$ primary_authors中定义的角色。

我们首先遍历$ primary_authors数组,然后将新的WP_User实例推送到$ authors数组,然后在第二个循环(如果存在的话)中获取剩余的作者。

这样,如果你创建他们仍然会被列入任何新的作者,但你可以挑选你想将它们添加到$ primary_authors阵列进行加权的人。

+0

完美工作。非常感谢! – user3015094