Разбиение на страницы — важнейшая функция для управления большими объемами контента в панели администратора WordPress. Это позволяет пользователям эффективно перемещаться по многочисленным элементам. В этой статье мы рассмотрим различные методы реализации нумерации страниц в панели администратора WordPress, а также приведем примеры кода. Давайте погрузимся!
Метод 1: использование класса WP_List_Table
Класс WP_List_Table обеспечивает встроенную поддержку нумерации страниц в панели администратора. Расширяя этот класс, вы можете создавать собственные таблицы с нумерацией страниц. Вот пример:
class Custom_List_Table extends WP_List_Table {
// Implement necessary methods here
}
function custom_table_page() {
// Create an instance of your custom table
$table = new Custom_List_Table();
// Prepare your data and set pagination arguments
$per_page = 10;
$total_items = // Total count of your items
$table->set_pagination_args([
'total_items' => $total_items,
'per_page' => $per_page
]);
// Display your table
$table->display();
}
Метод 2: использование WP_Query
Класс WP_Query позволяет получать сообщения или пользовательские типы сообщений с нумерацией страниц. Вот пример:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = [
'post_type' => 'post',
'posts_per_page' => 10,
'paged' => $paged
];
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
// Display your post content here
}
// Display pagination links
echo paginate_links([
'total' => $query->max_num_pages,
'current' => $paged,
]);
}
wp_reset_postdata();
Метод 3: использование пользовательского запроса с LIMIT и OFFSET
Вы можете вручную реализовать нумерацию страниц, используя предложения LIMIT
и OFFSET
в своем пользовательском запросе к базе данных. Вот пример:
global $wpdb;
$per_page = 10;
$paged = isset($_GET['paged']) ? max(0, intval($_GET['paged']) - 1) : 0;
$offset = $paged * $per_page;
$query = $wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}your_table_name LIMIT %d OFFSET %d",
$per_page,
$offset
);
$results = $wpdb->get_results($query);
foreach ($results as $result) {
// Display your data here
}
$total_items = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}your_table_name");
// Display pagination links
echo paginate_links([
'current' => max(1, $paged + 1),
'total' => ceil($total_items / $per_page),
'prev_text' => __('Previous'),
'next_text' => __('Next'),
]);
Реализация нумерации страниц в панели администратора WordPress необходима для эффективного управления контентом. В этой статье мы рассмотрели три метода: использование класса WP_List_Table, использование WP_Query и использование пользовательского запроса к базе данных. У каждого метода есть свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим конкретным требованиям. Включив нумерацию страниц, вы можете улучшить взаимодействие с пользователем и повысить производительность панели администратора WordPress.