Intereting Posts
Рекомендации по мониторингу необходимости будущих обновлений по теме, которую я разработал? Все сайты подпапок в сети WordPress перенаправляются на главный сайт datepicker работает на странице параметров виджетов, но не на настройке показать скрытую ul, если li активна Удалите мета-боксы (плагин Yoast SEO) получить имя категории на экране администратора WP_Query Attachment добавляет дополнительное количество подключений и необходимо связать вложение с адресом URL Содержание WordPress Структура meta_value postmeta для загрузки продукта woocommerce Как включить пользователя для выбора пароля для регистрации? Загрузка темы в панель инструментов Как вставить панель писем между заголовком и содержимым страницы? Как перейти к созданию файла css с переменными из параметров темы Содержимое, не отображаемое на странице с разбивкой по страницам Как передать переменные из одной функции в другую или объединить функции

Пользователи с настраиваемыми ролями, которые не отображаются в поле выбора автора сообщения

Я использую функцию для создания новых пользовательских ролей и удаления некоторых значений по умолчанию. Однако они не отображаются в поле post author! Появляется только администратор, потому что они выбраны в качестве администратора. Любой пользователь с настраиваемой ролью не отображается. Любая идея, почему это будет происходить?

Вот моя функция:

// Add New User Roles function add_new_roles() { // New Roles To Be Added $new_roles = array( array( 'role' => 'senior_pastor', 'display' => 'Senior Pastor' ), array( 'role' => 'exec_pastor', 'display' => 'Executive Pastor' ), array( 'role' => 'assoc_pastor', 'display' => 'Associate Pastor' ), array( 'role' => 'elder', 'display' => 'Elder' ), array( 'role' => 'ministry_leader', 'display' => 'Ministry Leader' ) ); foreach($new_roles as $role){ add_role($role['role'], $role['display'], array( 'edit_published_posts' => true, 'upload_files' => true, 'create_product' => true, 'publish_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'delete_posts' => true, 'read' => true )); } // Old Roles To Be Removed $old_roles = array( 'subscriber', 'contributor', 'author' 'editor' ); foreach($old_roles as $role){ remove_role( $role ); } } add_action('after_switch_theme', 'add_new_roles'); 

Обнаружено обходное решение ниже. Я предполагаю, что это связано с ошибкой в ​​ядре WordPress. Это отобразит ВСЕ пользователей в сообщениях, поэтому будьте осторожны.

 // Filter to fix the Post Author Dropdown function author_override( $output ) { global $post, $user_ID; // return if this isn't the theme author override dropdown if (!preg_match('/post_author_override/', $output)) return $output; // return if we've already replaced the list (end recursion) if (preg_match ('/post_author_override_replaced/', $output)) return $output; // replacement call to wp_dropdown_users $output = wp_dropdown_users(array( 'echo' => 0, 'name' => 'post_author_override_replaced', 'selected' => empty($post->ID) ? $user_ID : $post->post_author, 'include_selected' => true )); // put the original name back $output = preg_replace('/post_author_override_replaced/', 'post_author_override', $output); return $output; } add_filter('wp_dropdown_users', 'author_override'); 

кредит идет здесь

Да, действительно, это ошибка, о которой сообщается в билете # 16841 .

Тестирование с помощью 3.6-beta3, оно все еще существует … Обходной путь заключается в словах scribu :

[…] добавить level_1 к вашей роли.

Это PITA, учитывая, как давно устарели устаревшие уровни пользователей, но там вы идете.

И … он работает как рекламируемый;)


Для справки, это места, где wp_dropdown_users происходят в ядре:

экспорт, стол списка сообщений, мета-ящики, пользователи