Функция `paginate_links()` в WordPress: описание, параметры и примеры использования

Функция paginate_links() в WordPress

paginate_links() — это функция WordPress, которая помогает генерировать ссылки для постов на страницах с архивами, позволяя пользователям удобно перемещаться между страницами. Эта функция особенно полезна на страницах, где показывается много записей, например, на страницах с записями блога.

Описание функции

Функция paginate_links() имеет несколько параметров, которые позволяют настроить подачу ссылок. Ниже описаны основные параметры:

  • base: Базовый URL, который будет использоваться для создания пагинации. Например, http://example.com/all_posts.php%_%.
  • format: Формат для замены номера страницы в ссылке. Например: ?page=%#%.
  • total: Общее количество страниц (число).
  • current: Номер текущей страницы (число).
  • type: Формат возвращаемого значения, может быть 'plain' (строка), 'array' (массив) и 'list' (неупорядоченный список HTML).
  • prev_next: Позволяет включить ссылки на пред��дущую и следующую страницы (по умолчанию true).
  • prev_text: Текст для ссылки на предыдущую страницу.
  • next_text: Текст для ссылки на следующую страницу.

Пример использования

Приведём пример кода, который добавляет пагинацию на страницу с записями:

function my_pagenavi() {
    global $wp_query;

    $big = 999999999; // уникальное число для замены

    $args = array(
        'base'    => str_replace($big, '%#%', get_pagenum_link($big)),
        'format'  => '',
        'current' => max(1, get_query_var('paged')),
        'total'   => $wp_query->max_num_pages,
    );

    $result = paginate_links($args);

    // Убираем пагинацию для первой страницы
    $result = preg_replace('~/page/1/?(['"])~', '', $result);

    echo $result;
}

// В месте, где нужно вывести пагинацию:
my_pagenavi();

Основные параметры функции

Здесь вы можете увидеть более подробно, как работает каждый параметр:
Параметр Описание Значение по умолчанию
base Базовый URL для пагинации. ''
format Формат для структуры пагинации. ''
total Общее количество страниц. 1
current Номер текущей страницы. 'paged'
prev_next Включить ссылки на предыдущую и следующую страницы. true
prev_text Текст для предыдущей страницы. '« Предыдущая'
next_text Текст для следующей страницы. 'Следующая »'
type Формат возвращаемого значения. 'plain'

Пример вывода с использованием массива

Допустим, у вас есть кастомный запрос WP_Query, и вы хотите вывести пагинацию для него:

$paged = absint(get_query_var('paged') ? : 1); // 1 значение по умолчанию
$the_query = new WP_Query([
    'posts_per_page' => 5,
    'category_name'  => 'gallery',
    'paged'          => $paged,
]);

// Вывод записей
while ($the_query->have_posts()) {
    $the_query->the_post();
    ?>
    

str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'current' => max(1, get_query_var('paged')), 'total' => $the_query->max_num_pages ));

Заключение

Функция paginate_links() является мощным инструментом для создания удобной навигации по страницам с множеством записей. Используя параметры функции, вы можете настроить подачу ссылок на страницы так, как вам нужно, и улучшить пользовательский опыт на вашем сайте WordPress.

Используйте paginate_links() для удобной навигации по вашим архивам и не забудьте протестировать пагинацию на различных страницах, чтобы убедиться, что всё работает как должно!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *