Wordpress作者页面自定义顺序

时间:2013-11-20 21:46:52

标签: arrays wordpress sorting

我有以下代码只调用" authors"从我的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的顺序列出作者。这是一个广播电台的网站,所以我想列出"作者"他们按照相同的顺序播出。

1 个答案:

答案 0 :(得分: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数组中来挑选您想要加权的作者。