- Описание класса
- Методы
- ajax_response()
- ajax_user_can()
- bulk_actions()
- column_cb()
- column_default()
- comments_bubble()
- current_action()
- display()
- display_rows()
- display_rows_or_placeholder()
- display_tablenav()
- extra_tablenav()
- get_bulk_actions()
- get_columns()
- get_column_count()
- get_column_info()
- get_default_primary_column_name()
- get_items_per_page()
- get_pagenum()
- get_pagination_arg()
- get_primary_column()
- get_primary_column_name()
- get_sortable_columns()
- get_table_classes()
- get_views()
- get_views_links()
- handle_row_actions()
- has_items()
- months_dropdown()
- no_items()
- pagination()
- prepare_items()
- print_column_headers()
- print_table_description()
- row_actions()
- search_box()
- set_pagination_args()
- single_row()
- single_row_columns()
- views()
- view_switcher()
- _js_vars()
- __call()
- __construct()
- __get()
- __isset()
- __set()
- __unset()
- Примеры использования
- Генерация таблицы с использованием класса WP_List_Table
- Отображение комментариев в виде пузыря
- Формирование навигации над таблицей
- Отображение дополнительных элементов управления
- Групповые операции с элементами таблицы
- Вопросы и ответы
- Как добавить новую колонку в WP_List_Table?
- Как сделать колонку сортируемой в WP_List_Table?
- Как изменить количество элементов на странице в WP_List_Table?
- Как добавить действия над строками в WP_List_Table?
- Как изменить стиль таблицы в WP_List_Table?
- Как добавить фильтры над таблицей в WP_List_Table?
- Как изменить порядок сортировки в WP_List_Table?
- Как добавить пагинацию в WP_List_Table?
- Как добавить поиск по таблице в WP_List_Table?
Описание класса
Класс WP_List_Table является базовым классом для отображения списка элементов в HTML-таблице с поддержкой AJAX. Он предоставляет удобный способ создания и отображения таблицы с данными, позволяя разработчикам легко настраивать и расширять функциональность таблицы.
Этот класс предоставляет ряд методов для генерации и отображения различных элементов таблицы, таких как заголовки столбцов, строки данных, элементы управления, пагинация и другие. Он также обеспечивает возможность сортировки, фильтрации и выполнения действий над выбранными элементами в таблице.
Класс WP_List_Table является абстрактным классом, поэтому он не может быть использован напрямую. Он должен быть расширен другими классами, которые определяют конкретную таблицу со своими данными и логикой обработки.
Методы
__call— Делает приватные/защищенные методы доступными для чтения для обратной совместимости.__construct— Конструктор.__get— Делает приватные свойства доступными для чтения для обратной совместимости.__isset— Делает приватные свойства доступными для проверки наличия для обратной совместимости.__set— Делает приватные свойства доступными для установки для обратной совместимости.__unset— Делает приватные свойства доступными для удаления для обратной совместимости._js_vars— Отправляет необходимые переменные в JavaScript.ajax_response— Обрабатывает входящий AJAX-запрос (вызывается из admin-ajax.php).ajax_user_can— Проверяет разрешения текущего пользователя.bulk_actions— Отображает выпадающий список массовых действий.column_cbcolumn_defaultcomments_bubble— Отображает счетчик комментариев.current_action— Получает текущее выбранное действие из выпадающего списка массовых действий.display— Отображает таблицу.display_rows— Генерирует строки таблицы.display_rows_or_placeholder— Генерирует элемент tbody для списка таблицы.display_tablenav— Генерирует навигацию таблицы над или под таблицей.extra_tablenav— Отображает дополнительные элементы управления между массовыми действиями и пагинацией.get_bulk_actions— Получает список доступных массовых действий для этой таблицы.get_column_count— Возвращает количество видимых столбцов.get_column_info— Получает список всех, скрытых и сортируемых столбцов с примененным фильтром.get_columns— Получает список столбцов.get_default_primary_column_name— Получает имя столбца по умолчанию.get_items_per_page— Получает количество элементов для отображения на одной странице.get_pagenum— Получает номер текущей страницы.get_pagination_arg— Получает аргументы пагинации.get_primary_column— Получает имя основного столбца.get_primary_column_name— Получает имя основного столбца.get_sortable_columns— Получает список сортируемых столбцов.get_table_classes— Получает список CSS-классов для тега таблицы WP_List_Table.get_views— Получает список доступных представлений для этой таблицы.get_views_links— Генерирует ссылки представлений.handle_row_actions— Генерирует и отображает ссылки действий для строки таблицы.has_items— Определяет, есть ли элементы для отображения в таблице или нет.months_dropdown— Отображает выпадающий список для фильтрации элементов в таблице по месяцу.no_items— Сообщение, которое будет отображаться, когда нет элементов.pagination— Отображает пагинацию.prepare_items— Подготавливает список элементов для отображения.print_column_headers— Выводит заголовки столбцов, учитывая скрытые и сортируемые столбцы.print_table_description— Выводит описание таблицы с информацией о текущей сортировке и порядке.row_actions— Генерирует необходимый HTML для списка ссылок действий строки таблицы.search_box— Отображает поле поиска.set_pagination_args— Устанавливает все необходимые аргументы пагинации.single_row— Генерирует содержимое для одной строки таблицы.single_row_columns— Генерирует столбцы для одной строки таблицы.view_switcher— Отображает переключатель представлений.views— Отображает список доступных представлений для этой таблицы.
Методы
ajax_response()
Метод ajax_response() является частью класса WP_List_Table и предназначен для обработки входящего ajax-запроса, который вызывается из файла admin-ajax.php. Он используется для обработки и возврата данных в формате JSON в ответ на ajax-запросы, связанные с таблицей элементов.
WP_List_Table::ajax_response();
Метод ajax_response() вызывается статически, без создания экземпляра класса WP_List_Table. Он используется для обработки ajax-запросов, связанных с таблицей элементов, и возвращает данные в формате JSON.
Вот подробные комментарии к коду:
<?php
/**
* Обработка ajax-запроса и возврат данных в формате JSON.
*
* @since 3.1.0
*
* @global wpdb $wpdb Объект базы данных WordPress.
* @global string $hook_suffix Суффикс хука текущей страницы.
* @global string $pagenow Имя текущей страницы (без расширения).
* @global string $typenow Тип текущего объекта.
* @global string $taxnow Текущая таксономия.
* @global string $is_permalink Флаг, указывающий, является ли текущая страница страницей записи.
* @global string $wp_locale Объект локализации WordPress.
* @global WP_Screen $current_screen Объект текущего экрана.
* @global WP_Post_Type $post_type Объект типа записи.
* @global string $post_type_object Имя объекта типа записи.
* @global string $post_mime_type Тип медиафайла.
* @global string $mode Режим редактирования.
* @global string $comment_status Статус комментариев.
* @global string $post_status Статус записи.
* @global string $action Действие, выполняемое на странице.
* @global string $parent_file Имя файла родительской страницы.
* @global string $submenu_file Имя файла подстраницы.
* @global string $plugin_page Имя страницы плагина.
* @global string $admin_page_hooks Список хуков административных страниц.
* @global string $typenow Текущий тип записи.
* @global string $taxnow Текущая таксономия.
* @global string $pagenow Имя текущей страницы (без расширения).
* @global string $is_permalink Флаг, указывающий, является ли текущая страница страницей записи.
* @global string $wp_locale Объект локализации WordPress.
* @global WP_Screen $current_screen Объект текущего экрана.
* @global WP_Post_Type $post_type Объект типа записи.
* @global string $post_type_object Имя объекта типа записи.
* @global string $post_mime_type Тип медиафайла.
* @global string $mode Режим редактирования.
* @global string $comment_status Статус комментариев.
* @global string $post_status Статус записи.
* @global string $action Действие, выполняемое на странице.
* @global string $parent_file Имя файла родительской страницы.
* @global string $submenu_file Имя файла подстраницы.
* @global string $plugin_page Имя страницы плагина.
* @global string $admin_page_hooks Список хуков административных страниц.
*
* @param mixed $response Данные, которые будут возвращены в ответ на ajax-запрос.
*/
public static function ajax_response( $response ) {
// Обработка и возврат данных в формате JSON.
}
Метод ajax_response() принимает один параметр $response, который представляет собой данные, которые будут возвращены в ответ на ajax-запрос. Он обрабатывает и возвращает эти данные в формате JSON.
ajax_user_can()
Метод ajax_user_can() является частью класса WP_List_Table и используется для проверки разрешений текущего пользователя.
Данный метод проверяет разрешения текущего пользователя на выполнение определенных действий. Он принимает один аргумент — строку с идентификатором действия, для которого нужно проверить разрешение.
Метод ajax_user_can() работает следующим образом:
- Получает текущего пользователя.
- Проверяет разрешения пользователя на выполнение указанного действия.
- Возвращает
true, если пользователь имеет разрешение, иfalse, если у пользователя нет разрешения.
WP_List_Table::ajax_user_can( $action );
Метод ajax_user_can() принимает один аргумент:
$action(обязательный) — строка с идентификатором действия, для которого нужно проверить разрешение.
Пример использования:
$can_do_action = WP_List_Table::ajax_user_can( 'edit_posts' );
В данном примере метод ajax_user_can() проверяет разрешение текущего пользователя на выполнение действия «edit_posts». Результат проверки сохраняется в переменной $can_do_action.
bulk_actions()
Метод bulk_actions() отображает выпадающий список с возможными массовыми действиями для элементов. Он используется для создания пользовательского интерфейса для выбора действий, которые можно применить к выбранным элементам списка.
WP_List_Table::bulk_actions( string $which = '' ) Метод bulk_actions() принимает один необязательный параметр $which, который указывает местоположение выпадающего списка с массовыми действиями: ‘top’ или ‘bottom’. По умолчанию параметр равен пустой строке.
$which (строка, необязательно): Местоположение выпадающего списка с массовыми действиями: ‘top’ или ‘bottom’. Этот параметр является необязательным для обратной совместимости. По умолчанию: пустая строка.
/**
* Пример использования метода bulk_actions()
*/
$which = 'top'; // Местоположение выпадающего списка с массовыми действиями
// Выводит выпадающий список с массовыми действиями
$wp_list_table = new WP_List_Table();
$wp_list_table->bulk_actions( $which );
В этом примере метод bulk_actions() вызывается на экземпляре класса WP_List_Table и передается параметр $which, указывающий местоположение выпадающего списка с массовыми действиями. Метод отображает выпадающий список с возможными массовыми действиями для элементов.
column_cb()
Метод column_cb() является частью класса WP_List_Table и используется для отображения чекбокса в колонке таблицы. Он вызывается автоматически при выводе каждой строки таблицы и добавляет чекбокс для выбора элемента.
Метод column_cb() работает следующим образом: для каждой строки таблицы он создает чекбокс с уникальным идентификатором, который позволяет выбрать элемент. При выборе чекбокса пользователем, его значение сохраняется и может быть использовано для выполнения определенных действий, таких как удаление или редактирование элемента.
WP_List_Table::column_cb( object|array $item ) Метод column_cb() принимает один параметр:
$item(обязательный) — объект или массив, представляющий элемент таблицы.
Метод column_cb() принимает следующий параметр:
$item(обязательный) — объект или массив, представляющий элемент таблицы. Этот параметр содержит данные элемента, которые будут отображаться в таблице.
<span class="token-comment">// Пример использования метода column_cb()</span>
<span class="token-comment">// Выводит чекбокс для выбора элемента в таблице</span>
<span class="token-function">function</span> <span class="token-function">column_cb</span>( <span class="token-variable">$item</span> ) {
<span class="token-comment">// Создаем уникальный идентификатор для чекбокса</span>
<span class="token-variable">$cb_id</span> = <span class="token-string">'cb_'</span> . <span class="token-function">esc_attr</span>( <span class="token-function">md5</span>( <span class="token-function">serialize</span>( <span class="token-variable">$item</span> ) ) );
<span class="token-comment">// Выводим чекбокс с уникальным идентификатором</span>
<span class="token-keyword">echo</span> <span class="token-string">'<input type="checkbox" id="'</span> . <span class="token-variable">$cb_id</span> . <span class="token-string">'" name="itemcheck[]"/>'</span>;
} column_default()
Метод column_default() является частью класса WP_List_Table и используется для отображения значений по умолчанию в столбцах таблицы. Он вызывается, когда для указанного столбца не определен отдельный метод отображения.
Метод column_default() принимает два обязательных параметра: $item (объект или массив) и $column_name (строка). Он возвращает значение, которое будет отображаться в ячейке таблицы для указанного столбца.
WP_List_Table::column_default( object|array $item, string $column_name ) Метод column_default() вызывается автоматически при отображении значений по умолчанию для столбцов таблицы.
$item(объект или массив) — Обязательный параметр. Объект или массив, содержащий данные для текущей строки таблицы.$column_name(строка) — Обязательный параметр. Название столбца, для которого вызывается метод.
/**
* Отображает значение по умолчанию для столбца таблицы.
*
* @param object|array $item Объект или массив с данными строки таблицы.
* @param string $column_name Название столбца.
*
* @return string Значение для отображения в ячейке таблицы.
*/
public function column_default( $item, $column_name ) {
// Получаем значение для указанного столбца
$value = isset( $item[ $column_name ] ) ? $item[ $column_name ] : '';
// Возвращаем значение для отображения в ячейке таблицы
return $value;
}
В приведенном примере кода показано, как реализовать метод column_default() в пользовательском классе, наследующем WP_List_Table. Метод получает значение для указанного столбца из объекта или массива данных строки таблицы и возвращает это значение для отображения в ячейке таблицы.
comments_bubble()
Метод comments_bubble() отображает пузырек с количеством комментариев.
Метод используется для отображения количества комментариев в виде пузырька, который отображается рядом с заголовком записи.
WP_List_Table::comments_bubble( int $post_id, int $pending_comments ) Метод comments_bubble() принимает два обязательных параметра:
$post_id(int) — ID записи, для которой нужно отобразить пузырек с количеством комментариев.$pending_comments(int) — Количество ожидающих модерации комментариев.
$post_id (int) — Обязательный параметр. ID записи, для которой нужно отобразить пузырек с количеством комментариев.
$pending_comments (int) — Обязательный параметр. Количество ожидающих модерации комментариев.
/**
* Отображение пузырька с количеством комментариев
*
* @param int $post_id ID записи
* @param int $pending_comments Количество ожидающих модерации комментариев
*/
WP_List_Table::comments_bubble( $post_id, $pending_comments );
current_action()
Метод current_action() является частью класса WP_List_Table и используется для получения текущего выбранного действия из выпадающего списка массовых действий.
Метод возвращает имя выбранного действия или false, если действие не было выбрано.
WP_List_Table::current_action(): string|false Метод current_action() возвращает строку с именем выбранного действия или false, если действие не было выбрано.
Пример использования:
// Получение текущего выбранного действия
$action = $this->current_action();
В данном примере переменная $action будет содержать имя выбранного действия или false, если действие не было выбрано.
Метод current_action() возвращает строку с именем выбранного действия или false, если действие не было выбрано.
display()
Метод display() является частью класса WP_List_Table и используется для отображения таблицы с элементами в виде HTML-таблицы с поддержкой AJAX.
Данный метод отображает таблицу с элементами, используя данные, полученные из базы данных или других источников. Он отображает столбцы таблицы, заголовки столбцов и строки с данными. Метод также обрабатывает сортировку, пагинацию и другие действия, связанные с таблицей.
Метод display() является основным методом класса WP_List_Table и должен быть вызван для отображения таблицы.
WP_List_Table::display();
Метод display() вызывается статически, без создания экземпляра класса WP_List_Table. Он отображает таблицу с элементами, используя текущие настройки и данные, установленные в классе.
Данный метод обычно вызывается внутри шаблона административной панели WordPress, чтобы отобразить таблицу с элементами определенного типа данных.
Перед вызовом метода display() необходимо установить данные для таблицы, используя методы класса WP_List_Table, такие как set_items() и set_pagination_args(). Также можно настроить столбцы таблицы с помощью метода get_columns() и других методов класса.
display_rows()
Метод display_rows() является частью класса WP_List_Table и используется для генерации строк таблицы. Он отображает данные в виде HTML-таблицы с помощью AJAX.
Метод display_rows() генерирует строки таблицы, используя данные, полученные из метода prepare_items(). Он вызывается внутри метода display() класса WP_List_Table и отображает строки таблицы на экране.
Этот метод может быть переопределен в дочерних классах, чтобы настроить отображение строк таблицы в соответствии с конкретными требованиями.
WP_List_Table::display_rows(); Метод display_rows() вызывается внутри метода display() класса WP_List_Table. Он не принимает никаких аргументов.
Внутри метода display_rows() происходит генерация строк таблицы на основе данных, полученных из метода prepare_items(). Эти данные обычно представляют собой массив объектов, каждый из которых содержит информацию для одной строки таблицы.
Метод display_rows() используется для отображения данных в виде HTML-таблицы с помощью AJAX. Он вызывается автоматически при выводе таблицы на экран.
display_rows_or_placeholder()
Метод display_rows_or_placeholder() является частью класса WP_List_Table и используется для генерации элемента tbody в HTML-таблице, отображающей список элементов. Он отвечает за вывод строк таблицы или заполнение таблицы плейсхолдерами, если нет данных для отображения.
Метод display_rows_or_placeholder() проверяет, есть ли данные для отображения в таблице. Если данные есть, то он вызывает метод display_rows(), который отвечает за вывод строк таблицы. Если данных нет, то метод выводит плейсхолдеры с помощью метода display_rows_placeholder().
WP_List_Table::display_rows_or_placeholder() Метод display_rows_or_placeholder() вызывается автоматически при отображении таблицы с помощью класса WP_List_Table. Он не требует явного вызова из кода разработчика.
display_tablenav()
Метод display_tablenav() является частью класса WP_List_Table и используется для генерации навигации таблицы над или под таблицей. Он отображает пагинацию, ссылки на сортировку и другие элементы управления над или под таблицей данных.
WP_List_Table::display_tablenav( string $which ) Метод display_tablenav() принимает один обязательный параметр:
$which(строка, обязательный) — указывает, где будет отображаться навигация таблицы. Допустимые значения: «top» (над таблицей) или «bottom» (под таблицей).
Метод не возвращает значения.
$which(строка, обязательный) — указывает, где будет отображаться навигация таблицы. Допустимые значения: «top» (над таблицей) или «bottom» (под таблицей).
/**
* Пример использования метода display_tablenav()
*/
$wp_list_table = new WP_List_Table();
$wp_list_table->display_tablenav( 'top' );
В приведенном выше примере создается экземпляр класса WP_List_Table и вызывается метод display_tablenav() для отображения навигации над таблицей данных.
extra_tablenav()
Метод extra_tablenav() является частью класса WP_List_Table и используется для отображения дополнительных элементов управления между пакетными действиями и пагинацией в виде HTML-таблицы с возможностью AJAX.
Метод отображает дополнительные элементы управления, такие как фильтры, поиск или другие пользовательские элементы, которые могут быть добавлены в таблицу.
WP_List_Table::extra_tablenav( string $which ) Метод extra_tablenav() принимает один обязательный параметр:
$which(строка) — обозначает тип дополнительных элементов управления, которые нужно отобразить. Возможные значения: ‘top’ (для элементов управления над таблицей) или ‘bottom’ (для элементов управления под таблицей).
Метод не возвращает значения.
$which(строка, обязательный) — обозначает тип дополнительных элементов управления, которые нужно отобразить. Возможные значения: ‘top’ (для элементов управления над таблицей) или ‘bottom’ (для элементов управления под таблицей).
<code>$this</code>->extra_tablenav( 'top' ); В данном примере метод extra_tablenav() вызывается для отображения дополнительных элементов управления над таблицей.
get_bulk_actions()
Метод get_bulk_actions() является методом класса WP_List_Table, который используется для получения списка доступных массовых действий для данной таблицы.
Метод возвращает массив, содержащий список доступных массовых действий.
WP_List_Table::get_bulk_actions(): array Метод get_bulk_actions() вызывается статически, используя имя класса WP_List_Table. Он не принимает никаких аргументов.
Метод возвращает массив, содержащий список доступных массовых действий для данной таблицы.
Пример использования:
$bulk_actions = WP_List_Table::get_bulk_actions(); В переменной $bulk_actions будет содержаться массив с доступными массовыми действиями для данной таблицы.
Метод get_bulk_actions() возвращает массив, содержащий список доступных массовых действий для данной таблицы.
Тип возвращаемого значения: array.
get_columns()
Метод get_columns() является частью класса WP_List_Table и используется для получения списка колонок, которые будут отображаться в таблице.
Этот метод возвращает массив, содержащий названия колонок таблицы.
WP_List_Table::get_columns(): array Метод get_columns() не принимает никаких аргументов и возвращает массив.
Пример использования:
public function get_columns() {
$columns = array(
'column1' => 'Column 1',
'column2' => 'Column 2',
'column3' => 'Column 3'
);
return $columns;
} В этом примере метод get_columns() возвращает массив с тремя элементами, где ключи представляют имена колонок, а значения — их названия.
Метод get_columns() возвращает массив, содержащий названия колонок таблицы.
get_column_count()
Метод get_column_count() является частью класса WP_List_Table и используется для получения количества видимых столбцов в таблице.
WP_List_Table::get_column_count(): int
Метод get_column_count() не требует передачи аргументов. Он возвращает целое число, представляющее количество видимых столбцов в таблице.
Метод get_column_count() возвращает целое число, которое представляет количество видимых столбцов в таблице.
get_column_info()
Метод get_column_info() класса WP_List_Table возвращает список всех столбцов таблицы, включая скрытые и сортируемые столбцы, с примененным фильтром.
Этот метод используется для получения информации о столбцах таблицы, которая отображается в административной панели WordPress. Он возвращает массив, содержащий информацию о каждом столбце, включая его заголовок, ключ, видимость и возможность сортировки.
WP_List_Table::get_column_info(): array
Метод get_column_info() вызывается статически, используя имя класса WP_List_Table и оператор ::. Он не принимает никаких аргументов.
Пример использования:
$column_info = WP_List_Table::get_column_info();
В этом примере переменной $column_info будет присвоен массив, содержащий информацию о столбцах таблицы.
Метод get_column_info() возвращает массив, содержащий информацию о столбцах таблицы. Каждый элемент массива представляет собой ассоциативный массив с ключами:
name: Заголовок столбцаkey: Ключ столбцаvisible: Флаг видимости столбца (true или false)sortable: Флаг возможности сортировки столбца (true или false)
get_default_primary_column_name()
Метод get_default_primary_column_name() является частью класса WP_List_Table и используется для получения имени столбца по умолчанию, который является первичным столбцом.
WP_List_Table::get_default_primary_column_name(): string Метод get_default_primary_column_name() возвращает строку, которая представляет имя первичного столбца по умолчанию. В данном случае, возвращается пустая строка.
Метод get_default_primary_column_name() возвращает строку, которая представляет имя первичного столбца по умолчанию. В данном случае, возвращается пустая строка.
get_items_per_page()
Метод get_items_per_page() используется для получения количества элементов, отображаемых на одной странице.
Этот метод является частью класса WP_List_Table, который является базовым классом для отображения списка элементов в ajax-таблице HTML.
WP_List_Table::get_items_per_page( string $option, int $default_value = 20 ): int Метод get_items_per_page() принимает два параметра:
$option(обязательный) — имя опции пользователя.$default_value(необязательный) — количество элементов для отображения на странице. По умолчанию: 20.
Метод get_items_per_page() принимает следующие параметры:
$option(строка, обязательный) — имя опции пользователя. Опция должна быть зарегистрирована с помощью функцииregister_setting().$default_value(целое число, необязательный) — количество элементов для отображения на странице. По умолчанию: 20.
Метод get_items_per_page() возвращает целое число — количество элементов, отображаемых на одной странице.
<?php
// Получение количества элементов на странице
$items_per_page = WP_List_Table::get_items_per_page( 'my_option', 10 );
// Вывод количества элементов на странице
echo 'Количество элементов на странице: ' . $items_per_page;
?> В этом примере мы используем метод get_items_per_page() для получения количества элементов, отображаемых на странице. Мы передаем имя опции пользователя 'my_option' и значение по умолчанию 10. Затем мы выводим полученное количество элементов на странице.
get_pagenum()
Метод get_pagenum() класса WP_List_Table возвращает текущий номер страницы.
Метод используется для получения текущего номера страницы в списке элементов, отображаемом в виде ajax-таблицы.
WP_List_Table::get_pagenum(): int Метод get_pagenum() возвращает текущий номер страницы в виде целого числа.
Код метода:
/**
* Gets the current page number.
*
* @return int The current page number.
*/
protected function get_pagenum() {
return isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
}
Метод get_pagenum() проверяет, установлен ли параметр paged в запросе. Если параметр установлен, то метод возвращает его значение, преобразованное в целое число с помощью функции absint(). Если параметр paged не установлен, метод возвращает значение 1.
Метод get_pagenum() возвращает текущий номер страницы в виде целого числа (int).
get_pagination_arg()
Метод get_pagination_arg() является частью класса WP_List_Table и предназначен для доступа к аргументам пагинации.
WP_List_Table::get_pagination_arg( string $key ): int Метод get_pagination_arg() принимает один обязательный параметр $key, который является строкой и представляет собой аргумент пагинации, который требуется получить. Обычные значения для $key включают ‘total_items’, ‘total_pages’, ‘per_page’ или ‘infinite_scroll’.
$key (string) — Обязательный. Аргумент пагинации, который требуется получить. Обычные значения включают ‘total_items’, ‘total_pages’, ‘per_page’ или ‘infinite_scroll’.
Метод get_pagination_arg() возвращает целое число, которое соответствует заданному аргументу пагинации.
<code>// Получение общего количества элементов
$total_items = $this->get_pagination_arg( 'total_items' );
// Получение общего количества страниц
$total_pages = $this->get_pagination_arg( 'total_pages' );
// Получение количества элементов на странице
$per_page = $this->get_pagination_arg( 'per_page' );
// Получение значения бесконечной прокрутки
$infinite_scroll = $this->get_pagination_arg( 'infinite_scroll' ); В приведенном выше примере кода мы используем метод get_pagination_arg() для получения различных аргументов пагинации. Мы сохраняем общее количество элементов в переменную $total_items, общее количество страниц — в переменную $total_pages, количество элементов на странице — в переменную $per_page и значение бесконечной прокрутки — в переменную $infinite_scroll.
get_primary_column()
Метод get_primary_column() класса WP_List_Table возвращает имя основной колонки. Основная колонка — это колонка, которая будет использоваться для сортировки и отображения данных по умолчанию.
Метод работает следующим образом: он проверяет, задано ли имя основной колонки с помощью метода get_default_primary_column_name(). Если имя основной колонки не задано, то возвращается значение по умолчанию, которое определено в свойстве $default_primary_column_name.
WP_List_Table::get_primary_column(): string Метод get_primary_column() вызывается статически, без создания экземпляра класса WP_List_Table. Он возвращает строку — имя основной колонки.
Пример использования:
// Получение имени основной колонки
$primary_column = WP_List_Table::get_primary_column();
Комментарии к коду:
- Метод
get_primary_column()возвращает имя основной колонки. - Имя основной колонки может быть использовано для сортировки и отображения данных по умолчанию.
Метод get_primary_column() возвращает строку — имя основной колонки по умолчанию.
get_primary_column_name()
Метод get_primary_column_name() класса WP_List_Table возвращает имя основной колонки.
WP_List_Table::get_primary_column_name(): string Метод get_primary_column_name() возвращает строку, представляющую имя основной колонки.
Метод get_primary_column_name() возвращает имя основной колонки в виде строки.
get_sortable_columns()
Метод get_sortable_columns() является частью класса WP_List_Table и используется для получения списка сортируемых столбцов.
Этот метод возвращает массив, содержащий имена столбцов, которые могут быть отсортированы.
WP_List_Table::get_sortable_columns(): array Метод get_sortable_columns() не принимает никаких аргументов.
Он возвращает массив, содержащий имена сортируемых столбцов.
Пример использования:
$sortable_columns = $this->get_sortable_columns(); В этом примере переменной $sortable_columns будет присвоен массив с именами сортируемых столбцов.
Метод get_sortable_columns() возвращает массив с именами сортируемых столбцов.
Пример:
array get_table_classes()
Метод get_table_classes() является частью класса WP_List_Table и используется для получения списка CSS-классов для тега таблицы <table>. Он возвращает массив CSS-классов, которые могут быть применены к таблице.
WP_List_Table::get_table_classes(): string[]
Метод get_table_classes() является статическим и может быть вызван без создания экземпляра класса WP_List_Table. Он возвращает массив строк, представляющих CSS-классы для тега таблицы.
Метод get_table_classes() возвращает массив строк, представляющих CSS-классы для тега таблицы. Эти классы могут быть использованы для настройки внешнего вида таблицы.
get_views()
Метод get_views() является частью класса WP_List_Table и используется для получения списка доступных представлений (views) на данной таблице. Он возвращает массив с представлениями, которые могут быть отображены в таблице.
WP_List_Table::get_views(): array
Метод get_views() вызывается статически, без создания экземпляра класса WP_List_Table. Он возвращает массив, содержащий доступные представления (views) для данной таблицы.
Пример использования:
$views = WP_List_Table::get_views();
В данном примере переменная $views будет содержать массив с доступными представлениями (views) для таблицы.
Метод get_views() возвращает массив с доступными представлениями (views) для данной таблицы.
get_views_links()
Метод get_views_links() генерирует ссылки для представлений. Он используется для создания ссылок, которые позволяют пользователю переключаться между различными представлениями данных в таблице.
WP_List_Table::get_views_links( array $link_data = array() ): string[] Метод get_views_links() принимает один параметр — массив $link_data, который содержит данные для создания ссылок. Возвращает строковый массив с разметкой ссылок.
$link_data (массив, необязательный): Массив данных для создания ссылок. Он содержит следующие ключи:
url(строка): URL ссылки.label(строка): Текст ссылки.current(логическое значение, необязательное): Определяет, является ли данное представление текущим. По умолчанию равноfalse.
Метод get_views_links() возвращает массив строковых значений с разметкой ссылок. Ключи массива соответствуют входному массиву $link_data.
<code>$link_data = array(
array(
'url' => 'https://example.com/all',
'label' => 'All',
'current' => true,
),
array(
'url' => 'https://example.com/published',
'label' => 'Published',
'current' => false,
),
array(
'url' => 'https://example.com/drafts',
'label' => 'Drafts',
'current' => false,
),
);
$views_links = WP_List_Table::get_views_links( $link_data );
foreach ( $views_links as $link ) {
echo $link;
} В этом примере мы создаем массив $link_data с данными для трех ссылок. Затем мы вызываем метод get_views_links() с этим массивом и сохраняем результат в переменной $views_links. Затем мы проходимся по каждой ссылке в массиве и выводим ее на экран.
handle_row_actions()
Метод handle_row_actions() генерирует и отображает ссылки для действий с строкой в таблице. Он используется для создания действий, которые можно выполнить для каждой строки в списке элементов.
WP_List_Table::handle_row_actions( object|array $item, string $column_name, string $primary ): string Метод handle_row_actions() принимает три обязательных параметра: $item (объект или массив), $column_name (строка, текущее имя столбца) и $primary (строка, имя основного столбца). Он возвращает строку HTML с действиями для строки или пустую строку, если текущий столбец не является основным столбцом.
$item(объект|array) — Обязательный. Элемент, к которому применяется действие.$column_name(строка) — Обязательный. Текущее имя столбца.$primary(строка) — Обязательный. Имя основного столбца.
Метод handle_row_actions() возвращает строку HTML с действиями для строки или пустую строку, если текущий столбец не является основным столбцом.
<?php
$item = get_some_item(); // Получение элемента
$column_name = 'title'; // Текущее имя столбца
$primary = 'id'; // Имя основного столбца
// Генерация и отображение действий для строки
$row_actions = WP_List_Table::handle_row_actions( $item, $column_name, $primary );
// Вывод действий
echo $row_actions;
?> В приведенном выше примере мы получаем элемент с помощью функции get_some_item(). Затем мы указываем текущее имя столбца ($column_name) и имя основного столбца ($primary). Затем мы вызываем метод handle_row_actions() с этими параметрами и сохраняем результат в переменную $row_actions. Наконец, мы выводим строку действий с помощью echo.
has_items()
Метод has_items() является частью класса WP_List_Table и используется для определения наличия элементов в таблице. Он проверяет, есть ли элементы для отображения или нет.
WP_List_Table::has_items(): bool Метод has_items() возвращает булево значение true или false. Он используется для определения наличия элементов в таблице.
Метод has_items() возвращает булево значение (bool), которое указывает, есть ли элементы для отображения в таблице или нет.
months_dropdown()
Метод months_dropdown() отображает выпадающий список для фильтрации элементов в таблице списка по месяцу. Он используется для создания элемента управления, позволяющего пользователю выбрать определенный месяц для фильтрации данных.
WP_List_Table::months_dropdown( string $post_type ) Метод months_dropdown() принимает один обязательный параметр:
$post_type(string) — Тип записи. Этот параметр указывает, для какого типа записи нужно отобразить выпадающий список.
$post_type (string) — Обязательный параметр. Тип записи. Указывает, для какого типа записи нужно отобразить выпадающий список.
/**
* Пример использования метода months_dropdown()
*/
$post_type = 'post'; // Тип записи
// Выводит выпадающий список для фильтрации по месяцу
WP_List_Table::months_dropdown( $post_type );
В приведенном выше примере кода мы указываем тип записи 'post' и вызываем метод months_dropdown() для отображения выпадающего списка фильтрации по месяцу.
no_items()
Метод no_items() является частью класса WP_List_Table и используется для отображения сообщения, когда в таблице отсутствуют элементы.
Он выводит заданное сообщение на экран, которое может быть настроено с помощью фильтра wp_list_table_no_items.
WP_List_Table::no_items(); Метод no_items() вызывается без передачи аргументов и не возвращает никакого значения.
Он используется внутри класса WP_List_Table для отображения сообщения «No items found» (или другого заданного сообщения) в случае отсутствия элементов в таблице.
Для настройки текста сообщения можно использовать фильтр wp_list_table_no_items. Этот фильтр позволяет изменить выводимое сообщение с помощью пользовательской функции.
Пример использования фильтра:
add_filter( 'wp_list_table_no_items', 'custom_no_items_message' );
function custom_no_items_message( $message ) {
$message = 'Custom message when no items are found';
return $message;
} В приведенном примере мы добавляем фильтр wp_list_table_no_items и определяем пользовательскую функцию custom_no_items_message. В этой функции мы изменяем сообщение, которое будет отображаться при отсутствии элементов в таблице.
pagination()
Метод pagination() отображает пагинацию на странице. Пагинация представляет собой набор ссылок, позволяющих пользователю навигироваться по различным страницам списка элементов. Этот метод используется для отображения пагинации в таблице HTML, которая отображает список элементов.
WP_List_Table::pagination( string $which ) Метод pagination() принимает один обязательный параметр:
$which(string) — Определяет, какую часть пагинации нужно отобразить. Возможные значения: ‘top’ (верхняя часть пагинации) или ‘bottom’ (нижняя часть пагинации).
$which(string, обязательный) — Определяет, какую часть пагинации нужно отобразить. Возможные значения: ‘top’ (верхняя часть пагинации) или ‘bottom’ (нижняя часть пагинации).
/**
* Пример использования метода pagination()
*/
// Отображение верхней части пагинации
$wp_list_table->pagination( 'top' );
// Отображение нижней части пагинации
$wp_list_table->pagination( 'bottom' );
prepare_items()
Метод prepare_items() является частью класса WP_List_Table и используется для подготовки списка элементов для отображения. Он выполняет несколько важных задач:
- Получает данные, необходимые для отображения списка элементов.
- Устанавливает общее количество элементов.
- Устанавливает данные для пагинации.
- Устанавливает данные для сортировки.
Метод prepare_items() вызывается перед отображением списка элементов и обеспечивает правильное отображение данных.
WP_List_Table::prepare_items(); Метод prepare_items() не принимает никаких аргументов. Он вызывается внутри класса WP_List_Table и автоматически подготавливает список элементов для отображения.
Внутри метода prepare_items() происходит следующее:
- Устанавливается общее количество элементов с помощью метода
set_pagination_args(). - Получаются данные для отображения с помощью метода
get_data(). - Устанавливаются данные для пагинации с помощью метода
set_pagination_args(). - Устанавливаются данные для сортировки с помощью метода
usort().
Метод prepare_items() является важной частью процесса отображения списка элементов и должен быть вызван перед выводом таблицы с помощью метода display().
print_column_headers()
Метод print_column_headers() используется для вывода заголовков столбцов в таблице. Он учитывает скрытые и сортируемые столбцы.
WP_List_Table::print_column_headers( bool $with_id = true ) Метод print_column_headers() принимает один необязательный параметр:
$with_id(тип: bool, по умолчанию: true) — Определяет, устанавливать ли атрибут ID или нет.
$with_id bool: Необязательный параметр. Определяет, устанавливать ли атрибут ID или нет. По умолчанию установлено значение true.
/**
* Пример использования метода print_column_headers()
*/
$wp_list_table = new WP_List_Table();
$wp_list_table->print_column_headers( true );
В этом примере создается новый объект класса WP_List_Table и вызывается метод print_column_headers() с параметром true.
print_table_description()
Метод print_table_description() является частью класса WP_List_Table и используется для вывода описания таблицы с информацией о текущей сортировке и порядке.
Данный метод позволяет отобразить описание таблицы, которое содержит информацию о текущей сортировке и порядке. Описание выводится в виде строки и может быть использовано для информирования пользователей о текущих параметрах сортировки и порядке отображения данных в таблице.
WP_List_Table::print_table_description(); Метод print_table_description() вызывается статически, используя имя класса WP_List_Table. Он не принимает никаких аргументов.
Этот метод выводит описание таблицы с информацией о текущей сортировке и порядке. Описание будет отображаться в виде строки и может быть добавлено в нужное место на странице с помощью соответствующих хуков или функций.
row_actions()
Метод row_actions() генерирует необходимый HTML для списка ссылок действий строки.
Этот метод используется для отображения списка действий, доступных для каждой строки в таблице. Он генерирует HTML-код, содержащий ссылки на различные действия, такие как «Редактировать», «Удалить» и т. д. Эти ссылки могут быть видимыми всегда или только при наведении курсора на строку.
WP_List_Table::row_actions( string[] $actions, bool $always_visible = false ): string Метод row_actions() принимает два параметра: $actions и $always_visible. Параметр $actions является обязательным и представляет собой массив ссылок действий. Параметр $always_visible является необязательным и указывает, должны ли ссылки действий быть всегда видимыми. По умолчанию он установлен в значение false.
$actions (string[]) — Обязательный. Массив ссылок действий.
$always_visible (bool) — Необязательный. Определяет, должны ли ссылки действий быть всегда видимыми. По умолчанию: false.
Метод row_actions() возвращает HTML-код для ссылок действий строки.
<?php
$actions = array(
'edit' => '<a href="#">Редактировать</a>',
'delete' => '<a href="#">Удалить</a>'
);
$always_visible = false;
$row_actions = WP_List_Table::row_actions( $actions, $always_visible );
echo $row_actions;
?> В этом примере мы создаем массив $actions, содержащий две ссылки действий — «Редактировать» и «Удалить». Затем мы устанавливаем значение $always_visible в false. Затем мы вызываем метод row_actions() с этими параметрами и сохраняем результат в переменную $row_actions. Наконец, мы выводим HTML-код ссылок действий, используя переменную $row_actions.
search_box()
Метод search_box() отображает поле поиска на странице. Оно используется для поиска элементов в списке и обычно располагается в верхней части таблицы.
WP_List_Table::search_box( string $text, string $input_id ) Метод search_box() принимает два обязательных параметра:
$text(строка) — текст на кнопке «Отправить».$input_id(строка) — значение атрибута ID для поля ввода поиска.
/**
* Пример использования метода search_box()
*/
$text = 'Поиск'; // Текст на кнопке "Отправить"
$input_id = 'search-input'; // Значение атрибута ID для поля ввода поиска
$wp_list_table = new WP_List_Table();
$wp_list_table->search_box( $text, $input_id );
В данном примере создается объект класса WP_List_Table и вызывается метод search_box() с передачей параметров $text и $input_id.
Метод search_box() отображает поле поиска с кнопкой «Отправить» и полем ввода с указанным значением атрибута ID. При нажатии на кнопку «Отправить» будет выполнен поиск элементов в списке.
Этот метод обычно используется внутри метода display() класса WP_List_Table для отображения поисковой строки в верхней части таблицы.
Подробнее о классе WP_List_Table можно прочитать в документации WordPress.
set_pagination_args()
Метод set_pagination_args() устанавливает все необходимые аргументы пагинации для класса WP_List_Table. Он используется для настройки пагинации в таблице, отображающей список элементов.
WP_List_Table::set_pagination_args( array|string $args ) Метод set_pagination_args() принимает один параметр $args, который является массивом или строкой с информацией о пагинации.
$args (обязательный): Массив или строка с аргументами, содержащими информацию о пагинации.
<?php
$args = array(
'total_items' => 100,
'total_pages' => 10,
'per_page' => 10,
'current_page' => 1,
'orderby' => 'name',
'order' => 'ASC',
'search' => false,
'query_args' => array(),
);
$my_list_table = new My_List_Table();
$my_list_table->set_pagination_args( $args );
?> В приведенном выше примере кода создается массив $args, содержащий информацию о пагинации. Затем создается экземпляр класса My_List_Table и вызывается метод set_pagination_args(), передавая ему массив $args в качестве аргумента.
single_row()
Метод single_row() генерирует содержимое для одной строки таблицы. Он вызывается внутри метода display_rows() класса WP_List_Table и используется для отображения данных одной записи в таблице.
WP_List_Table::single_row( object|array $item ) Метод single_row() принимает один обязательный параметр:
$item(object|array) — Текущая запись, для которой нужно сгенерировать строку таблицы.
$item (object|array) — Обязательный параметр. Текущая запись, для которой нужно сгенерировать строку таблицы.
<code>$item</code> = array(
'id' => 1,
'name' => 'John Doe',
'email' => 'john.doe@example.com'
);
WP_List_Table::single_row( <code>$item</code> ); Пример кода демонстрирует использование метода single_row() для генерации строки таблицы с данными записи. В данном примере используется массив $item, содержащий информацию о пользователе (id, name, email).
single_row_columns()
Метод single_row_columns() генерирует столбцы для одной строки таблицы. Он используется в классе WP_List_Table для отображения данных в виде HTML-таблицы с возможностью AJAX.
WP_List_Table::single_row_columns( object|array $item ) Метод single_row_columns() принимает один обязательный параметр:
$item(объект или массив) — Текущий элемент, для которого генерируются столбцы.
$item (объект или массив) — Текущий элемент. Это может быть объект или массив, содержащий данные для отображения в строке таблицы.
<?php
$item = array(
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'phone' => '123-456-7890'
);
WP_List_Table::single_row_columns( $item );
?> В приведенном выше примере кода переменная $item содержит данные для одной строки таблицы. Метод single_row_columns() используется для генерации столбцов этой строки.
views()
Метод views() класса WP_List_Table отображает список доступных представлений (views) на данной таблице.
WP_List_Table::views(); Метод views() вызывается статически, без создания экземпляра класса WP_List_Table. Он выводит список доступных представлений (views) в виде HTML-кода.
Представления (views) — это фильтры, которые позволяют пользователю отображать только определенные элементы в таблице. Например, в таблице постов в административной панели WordPress представления могут быть «Все посты», «Опубликованные», «Черновики» и т.д.
Метод views() используется для вывода списка представлений (views) в HTML-формате. Он обычно вызывается внутри метода display() класса WP_List_Table для отображения списка представлений (views) над таблицей.
view_switcher()
Метод view_switcher() отображает переключатель вида.
Переключатель вида позволяет пользователю выбрать режим отображения элементов в таблице. Этот метод используется для отображения переключателя вида в таблице, созданной с использованием класса WP_List_Table.
WP_List_Table::view_switcher( string $current_mode ) Метод view_switcher() принимает один обязательный параметр:
$current_mode(строка) — Текущий режим отображения.
Метод не возвращает значения.
$current_mode(строка, обязательный) — Текущий режим отображения. Это значение будет использоваться для определения активного режима в переключателе вида.
/**
* Пример использования метода view_switcher()
*/
$current_mode = 'grid'; // Текущий режим отображения
// Выводит переключатель вида
WP_List_Table::view_switcher( $current_mode );
В приведенном выше примере кода создается переменная $current_mode, которая содержит текущий режим отображения. Затем метод view_switcher() вызывается с этой переменной в качестве аргумента, чтобы отобразить переключатель вида.
_js_vars()
Метод _js_vars() является частью класса WP_List_Table и используется для отправки необходимых переменных в JavaScript.
Он выполняет следующие действия:
- Создает массив переменных, которые будут переданы в JavaScript.
- Преобразует массив в JSON-строку.
- Выводит скрипт с глобальной переменной, содержащей JSON-строку.
WP_List_Table::_js_vars() Метод _js_vars() вызывается внутри класса WP_List_Table и не требует явного вызова извне.
Он автоматически выполняется при создании экземпляра класса WP_List_Table и используется для передачи необходимых переменных в JavaScript.
Внутри метода происходит следующее:
- Создается пустой массив
$js_vars, в котором будут храниться переменные. - Добавляются необходимые переменные в массив
$js_vars. Эти переменные зависят от конкретного использованияWP_List_Tableи могут быть различными. - Массив
$js_varsпреобразуется в JSON-строку с помощью функцииjson_encode(). - Выводится скрипт с глобальной переменной, содержащей JSON-строку. Это позволяет передать переменные в JavaScript.
Метод _js_vars() является внутренним методом класса WP_List_Table и обычно не требует изменений или расширений при создании пользовательских таблиц.
__call()
Метод «__call()» является частью класса «WP_List_Table» и используется для сделать приватные/защищенные методы доступными для обратной совместимости. Он позволяет вызывать методы, которые не определены непосредственно в классе, но доступны в его родительских классах.
WP_List_Table::__call( string $name, array $arguments ) Метод «__call()» принимает два параметра: строку «$name» и массив «$arguments». Он возвращает значение, возвращаемое обратным вызовом, или false в противном случае.
$name (string) — Обязательный. Имя метода, который нужно вызвать.
$arguments (array) — Обязательный. Аргументы, которые нужно передать при вызове метода.
Метод «__call()» возвращает значение обратного вызова или false в случае неудачи.
<?php
// Пример использования метода "__call()"
// Создание экземпляра класса WP_List_Table
$wp_list_table = new WP_List_Table();
// Вызов метода, который не определен непосредственно в классе WP_List_Table
$result = $wp_list_table->__call( 'undefined_method', array( 'arg1', 'arg2' ) );
// Вывод результата
echo $result;
?> В приведенном выше примере мы создаем экземпляр класса WP_List_Table и вызываем метод «__call()» для вызова метода «undefined_method», который не определен непосредственно в классе. Мы передаем два аргумента «arg1» и «arg2». Результат вызова метода сохраняется в переменной «$result» и выводится на экран.
__construct()
Метод «__construct()» является конструктором класса «WP_List_Table». Он вызывается при создании нового объекта класса и выполняет необходимые инициализации.
Класс «WP_List_Table» является базовым классом для отображения списка элементов в виде HTML-таблицы с поддержкой AJAX.
WP_List_Table::__construct( array|string $args = array() ) Конструктор класса «WP_List_Table» принимает один необязательный параметр — массив или строку аргументов.
$args (array|string) — Массив или строка аргументов. Возможные параметры:
plural(string) — Множественное значение, используемое для меток и перечисляемых объектов. Влияет на такие вещи, как имена классов CSS и nonce, используемые в таблице списка, например, ‘posts’.singular(string) — Единственная метка для перечисляемого объекта, например, ‘post’. По умолчанию пустая строка.ajax(bool) — Определяет, поддерживает ли таблица списка AJAX. Включает загрузку и сортировку данных, например. Если true, класс будет вызывать метод _js_vars() в подвале, чтобы предоставить переменные для любых скриптов, обрабатывающих события AJAX. По умолчанию false.screen(string) — Строка, содержащая имя хука, используемого для определения текущего экрана. Если оставить null, текущий экран будет автоматически установлен. По умолчанию null.
<?php
$args = array(
'plural' => 'посты',
'singular' => 'пост',
'ajax' => true,
'screen' => 'edit-post'
);
$table = new WP_List_Table( $args );
?> В данном примере создается новый объект класса «WP_List_Table» с указанными параметрами. Множественное значение установлено на «посты», единственное значение — на «пост», поддержка AJAX включена, а текущий экран установлен на «edit-post».
__get()
Метод «__get()» является частью класса «WP_List_Table» и используется для чтения значений приватных свойств класса. Он был создан для обеспечения обратной совместимости.
WP_List_Table::__get( string $name ): mixed Метод «__get()» принимает один обязательный параметр:
$name(string) — Название свойства, которое нужно получить.
Метод возвращает значение запрашиваемого свойства.
<?php
// Создание экземпляра класса WP_List_Table
$wp_list_table = new WP_List_Table();
// Получение значения свойства "example_property"
$property_value = $wp_list_table->__get( 'example_property' );
// Вывод значения свойства "example_property"
echo $property_value;
?> В приведенном выше примере мы создаем экземпляр класса WP_List_Table и затем используем метод «__get()» для получения значения свойства «example_property». Значение свойства затем выводится на экран.
$name (string) — Обязательный параметр. Название свойства, которое нужно получить.
Метод «__get()» принимает только один параметр:
$name— Название свойства, которое нужно получить.
Метод «__get()» возвращает значение запрашиваемого свойства. Тип возвращаемого значения может быть любым.
__isset()
Метод «__isset()» является частью класса «WP_List_Table» и используется для проверки существования и установки значения приватного свойства. Он предназначен для обеспечения совместимости с предыдущими версиями.
WP_List_Table::__isset( string $name ): bool Метод «__isset()» принимает один обязательный параметр:
$name(string) — Название свойства, которое нужно проверить на существование.
Метод «__isset()» принимает следующий параметр:
$name(string) — Обязательный. Свойство, которое нужно проверить на существование.
Параметр $name должен быть строкой.
Метод «__isset()» возвращает логическое значение (bool). Он указывает, является ли свойство обратно совместимым и установлено ли оно.
<code>/**
* Пример использования метода "__isset()" класса "WP_List_Table".
*
* @param string $name Название свойства.
* @return bool Является ли свойство обратно совместимым и установлено ли оно.
*/
public function __isset( $name ) {
// Проверяем, является ли свойство обратно совместимым и установлено ли оно.
return isset( $this->$name );
} __set()
Метод «__set()» является частью класса «WP_List_Table» и используется для установки значений для приватных свойств класса. Он был создан для обеспечения обратной совместимости.
Метод «__set()» позволяет устанавливать значения для приватных свойств класса «WP_List_Table». Он работает путем принятия двух аргументов: $name (имя свойства) и $value (значение свойства). После вызова метода «__set()», указанное свойство будет иметь новое значение, переданное в качестве аргумента $value.
WP_List_Table::__set( string $name, mixed $value ): mixed Метод «__set()» принимает два аргумента: $name (строка, обязательный) и $value (любой тип данных, обязательный). Он возвращает mixed.
Пример использования:
$table = new WP_List_Table();
$table->__set( 'property_name', $value ); В данном примере мы создаем экземпляр класса «WP_List_Table» и используем метод «__set()» для установки значения для свойства с именем ‘property_name’.
Метод «__set()» принимает два параметра:
- $name (строка, обязательный): Имя свойства, для которого нужно установить значение.
- $value (любой тип данных, обязательный): Значение, которое нужно установить для указанного свойства.
Метод «__set()» возвращает mixed — новое установленное значение свойства.
<code>$table = new WP_List_Table();
$table->__set( 'property_name', $value ); В данном примере мы создаем экземпляр класса «WP_List_Table» и используем метод «__set()» для установки значения для свойства с именем ‘property_name’.
__unset()
Метод «__unset()» класса «WP_List_Table» используется для деления приватных свойств на неустанавливаемые для обеспечения обратной совместимости. Он позволяет сделать приватные свойства недоступными для изменения.
WP_List_Table::__unset( string $name ) Метод «__unset()» принимает один обязательный параметр:
$name(string) — Название свойства, которое нужно сделать неустанавливаемым.
$name (string) — Обязательный параметр. Название свойства, которое нужно сделать неустанавливаемым.
<?php
/**
* Пример использования метода "__unset()" класса "WP_List_Table"
*
* @param string $name Название свойства, которое нужно сделать неустанавливаемым.
*/
$table = new WP_List_Table();
$table->__unset( 'property_name' );
?> Примеры использования
Генерация таблицы с использованием класса WP_List_Table
class My_List_Table extends WP_List_Table {
function __construct() {
parent::__construct( array(
'singular' => 'book',
'plural' => 'books',
'ajax' => false
) );
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'title':
case 'author':
return $item[ $column_name ];
default:
return print_r( $item, true );
}
}
function get_columns() {
$columns = array(
'title' => 'Title',
'author' => 'Author',
);
return $columns;
}
function prepare_items() {
$data = array(
array(
'title' => 'Book 1',
'author' => 'Author 1',
),
array(
'title' => 'Book 2',
'author' => 'Author 2',
),
);
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
$this->items = $data;
}
}
function my_render_list_page() {
$myListTable = new My_List_Table();
$myListTable->prepare_items();
$myListTable->display();
}
add_menu_page( 'My List Table', 'My List Table', 'manage_options', 'my_list_table', 'my_render_list_page' );
Отображение комментариев в виде пузыря
class My_List_Table extends WP_List_Table {
function __construct() {
parent::__construct( array(
'singular' => 'comment',
'plural' => 'comments',
'ajax' => false
) );
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'comment_content':
return $item[ $column_name ];
default:
return print_r( $item, true );
}
}
function get_columns() {
$columns = array(
'comment_content' => 'Comment',
);
return $columns;
}
function prepare_items() {
$data = array(
array(
'comment_content' => 'This is comment 1',
),
array(
'comment_content' => 'This is comment 2',
),
);
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
$this->items = $data;
}
function comments_bubble() {
echo '<div class="updated"><p>2</p></div>';
}
}
function my_render_list_page() {
$myListTable = new My_List_Table();
$myListTable->prepare_items();
$myListTable->display();
}
add_menu_page( 'My List Table', 'My List Table', 'manage_options', 'my_list_table', 'my_render_list_page' );
Формирование навигации над таблицей
class My_List_Table extends WP_List_Table {
function __construct() {
parent::__construct( array(
'singular' => 'book',
'plural' => 'books',
'ajax' => false
) );
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'title':
case 'author':
return $item[ $column_name ];
default:
return print_r( $item, true );
}
}
function get_columns() {
$columns = array(
'title' => 'Title',
'author' => 'Author',
);
return $columns;
}
function prepare_items() {
$data = array(
array(
'title' => 'Book 1',
'author' => 'Author 1',
),
array(
'title' => 'Book 2',
'author' => 'Author 2',
),
);
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
$this->items = $data;
}
function display_tablenav( $which ) {
if ( 'top' === $which ) {
echo 'Top navigation';
}
if ( 'bottom' === $which ) {
echo 'Bottom navigation';
}
}
}
function my_render_list_page() {
$myListTable = new My_List_Table();
$myListTable->prepare_items();
$myListTable->display();
}
add_menu_page( 'My List Table', 'My List Table', 'manage_options', 'my_list_table', 'my_render_list_page' );
Отображение дополнительных элементов управления
class My_List_Table extends WP_List_Table {
function __construct() {
parent::__construct( array(
'singular' => 'book',
'plural' => 'books',
'ajax' => false
) );
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'title':
case 'author':
return $item[ $column_name ];
default:
return print_r( $item, true );
}
}
function get_columns() {
$columns = array(
'title' => 'Title',
'author' => 'Author',
);
return $columns;
}
function prepare_items() {
$data = array(
array(
'title' => 'Book 1',
'author' => 'Author 1',
),
array(
'title' => 'Book 2',
'author' => 'Author 2',
),
);
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
$this->items = $data;
}
function extra_tablenav( $which ) {
if ( 'top' === $which ) {
echo 'Top extra navigation';
}
if ( 'bottom' === $which ) {
echo 'Bottom extra navigation';
}
}
}
function my_render_list_page() {
$myListTable = new My_List_Table();
$myListTable->prepare_items();
$myListTable->display();
}
add_menu_page( 'My List Table', 'My List Table', 'manage_options', 'my_list_table', 'my_render_list_page' );
Групповые операции с элементами таблицы
class My_List_Table extends WP_List_Table {
function __construct() {
parent::__construct( array(
'singular' => 'book',
'plural' => 'books',
'ajax' => false
) );
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'title':
case 'author':
return $item[ $column_name ];
default:
return print_r( $item, true );
}
}
function get_columns() {
$columns = array(
'cb' => '<input type="checkbox" />',
'title' => 'Title',
'author' => 'Author',
);
return $columns;
}
function prepare_items() {
$data = array(
array(
'title' => 'Book 1',
'author' => 'Author 1',
),
array(
'title' => 'Book 2',
'author' => 'Author 2',
),
);
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
$this->items = $data;
}
function bulk_actions( $which = '' ) {
if ( 'top' === $which ) {
echo 'Top bulk actions';
}
if ( 'bottom' === $which ) {
echo 'Bottom bulk actions';
}
}
}
function my_render_list_page() {
$myListTable = new My_List_Table();
$myListTable->prepare_items();
$myListTable->display();
}
add_menu_page( 'My List Table', 'My List Table', 'manage_options', 'my_list_table', 'my_render_list_page' );
Вопросы и ответы
Как добавить новую колонку в WP_List_Table?
Для добавления новой колонки в класс WP_List_Table необходимо переопределить метод get_columns(). В этом методе нужно вернуть массив, в котором ключами будут имена колонок, а значениями — их заголовки.
class My_List_Table extends WP_List_Table {
function get_columns() {
$columns = array(
'cb' => '<input type="checkbox" />',
'title' => 'Title',
'author' => 'Author',
'date' => 'Date',
'my_column' => 'My Column'
);
return $columns;
}
}
В приведенном примере добавлена новая колонка с именем ‘my_column’ и заголовком ‘My Column’.
Как сделать колонку сортируемой в WP_List_Table?
Для того чтобы сделать колонку сортируемой, нужно переопределить метод get_sortable_columns(). В этом методе нужно вернуть массив, в котором ключами будут имена колонок, а значениями — их идентификаторы.
class My_List_Table extends WP_List_Table {
function get_sortable_columns() {
$sortable_columns = array(
'title' => array('title', false),
'author' => array('author', false),
'date' => array('date', true)
);
return $sortable_columns;
}
}
В приведенном примере колонка ‘date’ сделана сортируемой по возрастанию и убыванию.
Как изменить количество элементов на странице в WP_List_Table?
Для изменения количества элементов на странице нужно переопределить метод get_items_per_page(). В этом методе нужно вернуть число, указывающее количество элементов, которые должны отображаться на одной странице.
class My_List_Table extends WP_List_Table {
function get_items_per_page($option, $default) {
$per_page = get_user_meta(get_current_user_id(), $option, true);
if (empty($per_page) || $per_page < 1) {
$per_page = $default;
}
return $per_page;
}
}
В приведенном примере количество элементов на странице берется из настроек пользователя. Если пользователь не указал количество элементов или указал некорректное значение, используется значение по умолчанию.
Как добавить действия над строками в WP_List_Table?
Для добавления действий над строками в WP_List_Table необходимо переопределить метод column_cb(). В этом методе можно добавить чекбокс для выбора строки и любые другие действия, которые нужно выполнить над строкой.
class My_List_Table extends WP_List_Table {
function column_cb( $item ) {
return sprintf(
'<input type="checkbox" name="item[]" value="%s" />',
$item['ID']
);
}
}
Как изменить стиль таблицы в WP_List_Table?
Для изменения стиля таблицы в WP_List_Table можно использовать метод get_table_classes(). В этом методе можно добавить или удалить CSS классы для таблицы.
class My_List_Table extends WP_List_Table {
function get_table_classes() {
return array( 'widefat', 'fixed', 'my-custom-table-class' );
}
}
Как добавить фильтры над таблицей в WP_List_Table?
Для добавления фильтров над таблицей в WP_List_Table необходимо переопределить метод extra_tablenav(). В этом методе можно добавить любые элементы управления, такие как выпадающий список или текстовое поле, для фильтрации данных в таблице.
class My_List_Table extends WP_List_Table {
function extra_tablenav( $which ) {
if ( $which == 'top' ) {
echo '<div class="alignleft actions">';
echo '<label for="filter-by-date">Filter by Date:</label>';
echo '<select name="filter-by-date" id="filter-by-date">';
echo '<option value="">All Dates</option>';
echo '<option value="2022-01">January 2022</option>';
echo '<option value="2022-02">February 2022</option>';
echo '</select>';
echo '<input type="submit" class="button" value="Filter" />';
echo '</div>';
}
}
}
Как изменить порядок сортировки в WP_List_Table?
Для изменения порядка сортировки в WP_List_Table необходимо переопределить метод get_sortable_columns(). Этот метод возвращает массив с названиями столбцов, по которым можно сортировать таблицу.
class My_List_Table extends WP_List_Table {
function get_sortable_columns() {
return array(
'column_name' => 'column_name'
);
}
}
Как добавить пагинацию в WP_List_Table?
Для добавления пагинации в WP_List_Table необходимо переопределить методы prepare_items() и set_pagination_args(). Метод prepare_items() должен устанавливать значения для свойств $items и $total_items, а метод set_pagination_args() должен устанавливать аргументы пагинации.
class My_List_Table extends WP_List_Table {
function prepare_items() {
// Установка значений для $items и $total_items
}
function set_pagination_args( $args ) {
// Установка аргументов пагинации
}
}
Как добавить поиск по таблице в WP_List_Table?
Для добавления поиска по таблице в WP_List_Table необходимо переопределить метод search_box(). Этот метод должен выводить HTML-код для поля поиска.
class My_List_Table extends WP_List_Table {
function search_box( $text, $input_id ) {
// Вывод HTML-кода для поля поиска
}
}
Класс WP_List_Table представляет собой базовый класс для отображения списка элементов в виде ajax-таблицы. Он содержит множество методов для настройки и управления таблицей, таких как изменение порядка сортировки, добавление пагинации и поиска по таблице.