вам повезло сегодня, как я сейчас делаю то, что вы просите :)
WordPress отображает только пользователи с ролью author
. в основном вам нужно удалить метатекс authordiv
, добавить еще один мета-ящик с тем же html, что и исходный authordiv
, найти пользователей с правильной ролью/возможностями и построить выбор, поэтому приведенный ниже код - это моя реализация, вам нужно будет изменить его на соответствии с вашими потребностями:
// add authordiv if user is admin or is allowed to change author of post !important
global $current_user;
if(in_array(array('administrator','change_post_author'), $current_user->allcaps))
add_meta_box('authordiv', 'Change Author', 'my_add_author_metabox', get_post_type(), 'side');
// make new author metabox that contains users that can manage this cpt
function my_add_author_metabox()
{
$post_type_name = isset($_GET['post_type']) ? $_GET['post_type'] : get_post_type($_GET['post']);
$roles = get_editable_roles();
// i unset these as they are never used
unset(
$roles['administrator'],
$roles['contributor'],
$roles['author'],
$roles['editor'],
$roles['subscriber']
);
// get role that manages this cpt
$cpt_name = '';
$cap = 'edit_' . $post_type_name;
foreach($roles as $role_name => $args){
if(array_key_exists($cap, $args['capabilities'])){
$cpt_name = $role_name;
break;
}
}
// get users that can manage this cpt
global $post;
$users = get_users('role=' . $cpt_name);
$author_id = $post->post_author;
$select = '
<label class="screen-reader-text" for="post_author_override">Change Author</label>
<select name="post_author_override" id="post_author_override" class="">
';
foreach($users as $user){
if($user->ID == $author_id)
$select .= "<option value=\"{$user->ID}\" selected=\"selected\">{$user->display_name}</option>";
else
$select .= "<option value=\"{$user->ID}\">{$user->display_name}</option>";
}
$select .= '</select>';
echo $select;
}
сейчас в моей срг я не поддерживает author
, но если вы делаете то или удалить author
из supports
, когда вы register_post_type()
или использовать
remove_meta_box('authordiv');
надеюсь, он работает для вас, это работает меня. вероятно, лучше, и если вы когда-нибудь столкнетесь с этим, отправьте его сюда :)
Ваш вопрос непонятен. Можете ли вы попытаться его повторить? Вы хотите создать нового пользователя с тем же именем, что и тип сообщения? Или наоборот? –
@Chris Herbert Мне нужно показать весь пользовательский реестр на моем сайте с типом poste, чтобы добавить сообщение этому пользователю, так же, как новости, при добавлении новостей вам нужно добавить эту новость авторам – kamkam
, вы имеете в виду, что у вас есть роль или добавлена возможности пользователю управлять настраиваемым типом сообщений, и вы хотите, чтобы эти пользователи отображались в мета-окне «авторы» на экране редактора сообщений? – gwillie