此元框正在使用函数wp_dropdown_users()
列出所有用户。它只有一个过滤器可以更改输出:wp_dropdown_users
.
但是这个过滤器只提供完整的标记和用户。要通过regex解析用户名,检查他们的角色,然后返回一个新的HTML,既不容易也不快速。
我认为最好的方法是停用这个元框。
remove_meta_box(\'authordiv\', \'post\', \'normal\');
然后通过插件创建一个自定义元框,并只列出博客的作者。
这个小插件正是这样做的。
<?php
/**
* Plugin Name: Author Meta Box only with authors
* Plugin URI: http://wordpress.stackexchange.com/questions/60429/stop-loading-collaborators-users-on-add-new-post-or-page
* Description:
* Author: Frank Bültge
* Author URI: http://bueltge.de
* License: GPLv3
*/
add_action( \'admin_menu\', \'fb_remove_author_meta_boxes\' );
function fb_remove_author_meta_boxes() {
remove_meta_box(\'authordiv\', \'post\', \'normal\');
add_meta_box(\'fb_authordiv\', __(\'Author\'), \'fb_post_author_meta_box\', \'post\', \'normal\', \'core\');
}
function fb_post_author_meta_box( $post ) {
global $user_ID;
// get all authors
$wp_user_search = new WP_User_Search( \'\', \'\', \'author\' );
$authors = join( \', \', $wp_user_search->get_results() ); // user IDs
?>
<label class="screen-reader-text" for="post_author_override"><?php _e(\'Author\'); ?></label>
<?php
wp_dropdown_users( array(
\'include\' => $authors,
\'who\' => \'authors\',
\'name\' => \'post_author_override\',
\'selected\' => empty($post->ID) ? $user_ID : $post->post_author,
\'include_selected\' => true
) );
}
Gist 3225957 for Download