作者名单先列出特殊作者,然后列出正常作者

时间:2016-08-17 作者:rwzdoorn

目前,我正在尝试创建一个包含所有作者的作者列表,但上面有一些“特殊”作者。“特殊”作者应首先获得结果,并且不应与普通作者一起出现在列表中。

“special”作者在usermeta中有一个名为“werksortgodmodus”的元键,其元值为“yes”。“其余”作者的“werksortgodmodus”=否。

结果应该是这样的:

【godmodus作者】、【godmodus作者】、【godmodus作者】、【普通作者】、【普通作者】、【普通作者】。

这是我找到并剥离的代码,以获得作者。我怎样才能让godmodus成为最优秀的作家?

[edit] 用原始代码替换代码[/edit]

    <?php
    $display_admins = false;
    $order_by = \'display_name\'; 
    $role = \'author\';
    $avatar_size = 64;

if(!empty($display_admins)) {
    $blogusers = get_users(\'orderby=\'.$order_by.\'&role=\'.$role);
} else {
    $admins = get_users(\'role=administrator\');
    $exclude = array();
    foreach($admins as $ad) {
        $exclude[] = $ad->ID;
    }
    $exclude = implode(\',\', $exclude);
    $blogusers = get_users(\'exclude=\'.$exclude.\'&orderby=\'.$order_by.\'&role=\'.$role);
}
$authors = array();
foreach ($blogusers as $bloguser) {
    $user = get_userdata($bloguser->ID);
    if(!empty($hide_empty)) {
        $numposts = count_user_posts($user->ID);
        if($numposts < 1) continue;
    }
    $authors[] = (array) $user;
}        
    echo \'<ul class="contributors">\';
    foreach($authors as $author) {
        $display_name = $author[\'display_name\'];
        $description = get_userdata($author[\'ID\'])->user_description;
        $avatar = get_avatar($author[\'ID\'], $avatar_size);
        $author_profile_url = get_author_posts_url($author[\'ID\']);

        echo \'<li><h3>\'.$display_name.\'</h3><a href="\', $author_profile_url, \'">\', $avatar , \'</a><p>\'.$description.\'</p><p><a href="\', $author_profile_url, \'" class="contributor-link">➤ Posts by \'.$display_name.\'</a></p></li>\';
    }
    echo \'</ul>\';
    ?>

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

“special”作者在usermeta中有一个名为“werksortgodmodus”的元键,其元值为“yes”。“其余”作者的“werksortgodmodus”=否。

例如,您可以使用(PHP版本5.4+)按元数据排序:

$blogusers = get_users( 
    [ 
        \'role\'     => \'author\',
        \'meta_key\' => \'werksortgodmodus\', 
        \'orderby\' => [ \'meta_value\' => \'DESC\', \'display_name\' => \'ASC\' ], 
    ] 
);
在那里,我们先按werksortgodmodus 元值,然后通过例如。display_name.

我们使用DESC 订购时yes 值位于no 价值观

如果有大量用户,那么可能需要使用查询分页。

相关推荐

将wp_list_Authors与get_user_meta组合使用

我使用wp\\u list\\u authors函数,如下所示:<?php wp_list_authors( array( \'show_fullname\' => \'true\', \'orderby\' => \'display_name\', \'order\' => \'ASC\' )) ?> 然而,这表明作者firstname + lastname 我想切换它,以便显示用户lastname +