当试图按作者姓名对我上传的媒体库进行排序时,WordPress似乎只会按作者ID(http://example.com/wp-admin/upload.php?mode=list&orderby=author&order=desc )
这是预期的行为、bug还是疏忽?按作者ID排序似乎很无用,我更愿意按名字和/或姓氏排序。
当试图按作者姓名对我上传的媒体库进行排序时,WordPress似乎只会按作者ID(http://example.com/wp-admin/upload.php?mode=list&orderby=author&order=desc )
这是预期的行为、bug还是疏忽?按作者ID排序似乎很无用,我更愿意按名字和/或姓氏排序。
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。我在metabox中有一组可排序的wysiwyg编辑器。不幸的是,每当我拖动一行时,我都会遇到这个错误,我不知道是什么导致了它。Uncaught TypeError: Object [object Object] has no method \'destroy\'这是我的可排序代码:$( \"#repeatable-fieldset-one tbody\" ).sortable({ handle: \'.jQuerySortableIcon\',