add_screen_option()
Реєструє опцію для сторінки адмін-панелі, яка буде показана у спеціальній вкладці «Налаштування екрана» (у правому верхньому кутку).
Працює на основі методу:
WP_Screen::add_option( $option, $args = array() );
Дивіться файл /wp-admin/includes/class-wp-screen.php
Функція додає назву опції та її параметри у властивість класу $_options , який потім можна отримати за допомогою методуWP_Screen::get_option( $option, $key = false )
Також є встановлена опція ‘per_page’. Якщо її визначити в момент коли екран визначено, але виводу ще не було. То в налаштуваннях екрана з’явиться налаштування “Посторінкова навігація”:
Викликати потрібно по тому, як екран визначено, тобто. під час або після події current_screen
(це після admin_init
). Найкраще під час завантаження сторінки: подія load-(page_hook) .
Стаття на тему: Налаштування екрана: опція «кількість елементів на сторінці» для таблиць WP_List_Table
get_current_screen()
Хуків немає.
Повертає
null
. Нічого.
Використання
add_screen_option ($ option, $ args);
-
$option
(рядок) (обов’язковий) -
Назва опції. Попередньо назва
per_page
і
layout_columns
. -
$args
(змішаний) -
Параметри опції у вигляді масиву або ще.
За замовчуванням: array()
Приклади
#1 Додамо налаштування посторінкової навігації на сторінку адмін панелі
Допустимо ми реєструємо свою сторінку за допомогою add_menu_page() і нам потрібно додати на сторінку налаштування посторінкової навігації:
// реєструємо сторінку $hook = add_menu_page($pg_title, $menu_title, $cap, $slug, $function); // підключаємося до події, коли сторінка завантажена, але нічого не виводиться add_action( "load-$hook", function () { add_screen_option( 'per_page', array( 'label' => 'Показувати на сторінці', 'default' => 10, 'option' => 'my_page_per_page', // назва опції, буде записано в метаполі користувача ))); } ); // Тепер, щоб опція зберігалася потрібно додати ще такий хук // WP 5.4.2. Збереження опції екрана per_page. Потрібно викликати до події admin_menu add_filter( 'set_screen_option_'.'my_page_per_page', function( $status, $option, $value ){ return (int) $value; }, 10, 3); // WP <5.4.2. Збереження опції екрана per_page. Потрібно викликати до події admin_menu add_filter( 'set-screen-option', function( $status, $option, $value ){ return ( $option == 'my_page_per_page' ) ? (int) $ value : $ status; }, 10, 3);
Отримати вказану опцію там, де вона потрібна, можна за допомогою такого коду:
$per_page_option = get_current_screen()->get_option('per_page'); $per_page = get_user_meta( get_current_user_id(), $per_page_option['option'], true )?: $per_page_option['default']; // $per_page дорівнюватиме 10 або скільки було встановлено...
список змін
З версії 3.1.0 | Введено. |
Код add_screen_option() add screen option WP 6.0.2
function add_screen_option( $option, $args = array() ) { $current_screen = get_current_screen(); if (! $current_screen) { return; } $current_screen->add_option($option, $args); }