Intereting Posts

задать определенные параметры экрана на странице после сводки

Мне нужно установить различные параметры экрана (название, автор, категории …) на странице пост-сводки для пользователей без администратора (редактор, автор …), которые пользователь не может изменить самостоятельно.

Пример : введите описание изображения здесь

Это представление администратора, и мне нужно скрыть столбцы View Count и SEO для пользователей, не являющихся администраторами.

У кого-нибудь есть идея, как этого добиться?

Solutions Collecting From Web of "задать определенные параметры экрана на странице после сводки"

Я предполагаю, что вам нужно что-то вроде редакторов, которые не могут видеть столбец категории или что-то в этом роде.

Этот фрагмент может помочь вам:

 /** Remove "Options"-Panel, when User is not admin **/ add_filter( 'manage_posts_columns', 'change_columns_for_user', 10, 2 ); function change_columns_for_user( $columns, $post_type ){ if( 'post' != $post_type ) return $columns; if( current_user_can( 'manage_options' ) ) return $columns; else{ //Remove Categories unset( $columns['categories'] ); //Remove Tags unset( $columns['tags'] ); //Remove Comments unset( $columns['comments'] ); return $columns; } } 

В этом фрагменте мы удаляем некоторые столбцы, если пользователь не может управлять вариантами управления. Вы знаете панель параметров сверху: в этом случае они больше не появятся в этой панели.

Но он не должен меняться от конкретного входа пользователя.

Если вы по-прежнему хотите отключить панель параметров для некоторых пользователей, просмотрите этот фрагмент:

 /** Remove "Options"-Panel, when User is not admin **/ add_filter( 'screen_options_show_screen', 'remove_screen_settings', 10, 2 ); function remove_screen_settings( $show_screen, $class ){ if( 'edit-post' != $class->id ) return $show_screen; if( ! current_user_can( 'manage_options' ) ) return false; else return true; } 

Вы можете использовать API возможностей для условного набора параметров экрана:

 if ( current_user_can( 'manage_options' ) ) { // Administrator, add some options } else { // Other roles, do something different } 

Я принял ответ @websupporter в соответствии с моим вопросом.

Однако я хотел бы добавить несколько кодов к конкретному вопросу, с которым я столкнулся ранее.

Мне нужно удалить дополнительные столбцы Yoast SEO дополнительных пользователей. В этом конкретном случае Yoast SEO обеспечивает привязку к отключению столбцов. Поэтому я использовал это, как показано ниже.

 /** Remove SEO columns when User is not admin**/ function remove_page_analysis_for_non_admin(){ if( current_user_can( 'manage_options' ) ) return true; else{ return false; } } add_filter( 'wpseo_use_page_analysis', 'remove_page_analysis_for_non_admin', 10, 2 ); 

Если кто-нибудь захочет удалить его для всех пользователей, используйте следующий код

 add_filter( 'wpseo_use_page_analysis', '__return_false' );