Комплексное руководство по реализации нумерации страниц в панели администратора WordPress

Разбиение на страницы — важнейшая функция для управления большими объемами контента в панели администратора 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.