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


Я использую мультипресс, но пользователи с маленькими экранами не могут получить доступ к вкладке HTML, так как в поле "Опубликовать мета" есть div, который скользит над ним, отключая возможность щелкнуть по нему. Одна из идей состоит в том, чтобы принудительно использовать макет с одним столбцом, но в настройках экрана для этого нет опций. Есть ли другой способ сделать это?

Author: Jan Fabry, 2010-11-26

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' );
 15
Author: sorich87, 2015-11-06 11:10:33

Просто вы можете сделать это:

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

 5
Author: Mouloud, 2015-03-12 11:01:36

Чтобы уточнить: в разделе "Параметры экрана" есть опции для принудительного макета с одним столбцом, но они доступны только на странице редактора Wordpress, такой как сообщения или страницы.

Кнопка "Параметры экрана" отображается в виде вкладки рядом с кнопкой "Справка" в правом верхнем углу панели управления Wordpress.

@sorich87 предлагает наилучшее возможное решение. Включая этот код в functions.php заставит всех пользователей использовать один макет столбца в редакторе, что может помочь облегчить путаница для менее технических пользователей.

 1
Author: PNMG, 2010-11-30 22:27:08
  • Используйте тему, которая поддерживает меньшую ширину.

    Редактируйте свой CSS напрямую.

    Добавьте таблицу стилей медиа-запроса CSS.

 0
Author: Wyck, 2010-11-26 14:50:17

Это сработало для меня:

$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. На мой взгляд, это лучше для удобства использования.

 0
Author: kosinix, 2015-11-11 07:40:51

Просто еще одна альтернатива, использующая те же методы, что и принятое решение:

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 );
 0
Author: Michael Ecklund, 2019-08-01 15:42:31

Просто добавьте нижеприведенную строку в function.php

add_filter( "get_user_option_screen_layout_{post-type}", function(){return '1';}, 10, 3 );
 0
Author: Tauhed, 2020-06-04 13:19:38