как принудительно использовать макет с одним столбцом в макете экрана
Я использую мультипресс, но пользователи с маленькими экранами не могут получить доступ к вкладке HTML, так как в поле "Опубликовать мета" есть div, который скользит над ним, отключая возможность щелкнуть по нему. Одна из идей состоит в том, чтобы принудительно использовать макет с одним столбцом, но в настройках экрана для этого нет опций. Есть ли другой способ сделать это?
7 answers
Вы можете использовать фильтр screen_layout_columns
, чтобы задать только один столбец для экрана публикации get_user_option_screen_layout_post
, чтобы принудительно установить для параметра пользователя значение 1.
Если вы хотите использовать это для пользовательского типа записи, используйте
get_user_option_screen_layout_{post_type}
Это сделает следующий код:
function so_screen_layout_columns( $columns ) {
$columns['post'] = 1;
return $columns;
}
add_filter( 'screen_layout_columns', 'so_screen_layout_columns' );
function so_screen_layout_post() {
return 1;
}
add_filter( 'get_user_option_screen_layout_post', 'so_screen_layout_post' );
Просто вы можете сделать это:
add_filter('get_user_option_screen_layout_{$post_type}', 'your_callback' );
Пример с типом сообщения "сообщение":
add_filter('get_user_option_screen_layout_message', function() {
return 1;
} );
Вы можете использовать '__return_true' в своем обратном вызове.
См.: http://codex.wordpress.org/Function_Reference/get_user_option
Чтобы уточнить: в разделе "Параметры экрана" есть опции для принудительного макета с одним столбцом, но они доступны только на странице редактора Wordpress, такой как сообщения или страницы.
Кнопка "Параметры экрана" отображается в виде вкладки рядом с кнопкой "Справка" в правом верхнем углу панели управления Wordpress.
@sorich87 предлагает наилучшее возможное решение. Включая этот код в functions.php заставит всех пользователей использовать один макет столбца в редакторе, что может помочь облегчить путаница для менее технических пользователей.
-
Используйте тему, которая поддерживает меньшую ширину.
Редактируйте свой CSS напрямую.
Добавьте таблицу стилей медиа-запроса CSS.
Это сработало для меня:
$post_type = 'post'; // Change this to a post type you'd want
function my_screen_layout_post( $selected ) {
if( false === $selected ) {
return 1; // Use 1 column if user hasn't selected anything in Screen Options
}
return $selected; // Use what the user wants
}
add_filter( "get_user_option_screen_layout_{$post_type}", 'my_screen_layout_post' );
Он заменит параметр по умолчанию любым параметром, явно выбранным пользователем на панели параметров экрана в WP admin. На мой взгляд, это лучше для удобства использования.
Просто еще одна альтернатива, использующая те же методы, что и принятое решение:
add_filter( 'screen_layout_columns', function ( Array $columns = array() ) {
$current_screen = get_current_screen();
$screen_ids = array(); // Add screen ID's here
if ( in_array( $current_screen->id, $screen_ids ) ) {
$columns[ $current_screen->id ] = 1;
update_user_meta( get_current_user_id(), "screen_layout_{$current_screen->id}", 1 );
}
return $columns;
}, 9999 );
Просто добавьте нижеприведенную строку в function.php
add_filter( "get_user_option_screen_layout_{post-type}", function(){return '1';}, 10, 3 );