按作者的显示名称排序:
这很可能是出于设计原因,因为
wp_posts
表是作者ID。
我们可以加入wp_users
表以获取有关用户的更多信息,然后相应地修改订单。
下面是一个示例,我们可以通过显示名称进行订购:
/**
* Modify the author sorting of the media library uploads (mode=list),
* use \'display_name\' instead of \'post_author\'.
*
* @see http://wordpress.stackexchange.com/a/184501/26350
*/
add_action( \'load-upload.php\', function()
{
add_filter( \'posts_clauses\', function( $clauses, $q )
{
if( $q->is_main_query()
&& \'list\' === filter_input( INPUT_GET, \'mode\' )
&& \'author\' === filter_input( INPUT_GET, \'orderby\' )
) {
global $wpdb;
// Join part:
$clauses[\'join\'] .= " LEFT JOIN {$wpdb->users} u
ON u.ID = {$wpdb->posts}.post_author ";
// Orderby part:
$clauses[\'orderby\'] = str_replace(
"{$wpdb->posts}.post_author",
" u.display_name",
$clauses[\'orderby\']
);
}
return $clauses;
}, 10, 2 );
});
首名和末名存储在
wp_usermeta
表,因此您需要为此调整SQL查询,但请注意,这些字段都可能为空。另一方面,显示名称始终设置为afaik。