Функция paginate_links()
в WordPress генерирует ссылки пагинации для навигации между страницами постов. Она полезна, если вы хотите создать пользовательские шаблоны пагинации или улучшить навигацию на вашем сайте.
Описание функции
Функция paginate_links()
создает HTML-код для пагинации, возвращая строки ссылок на страницы.
paginate_links( $args = '' )
Параметры:
$args
(массив или строка, необязательный): Ассоциативный массив или строка аргументов для настройки ссылок пагинации. По умолчанию используется массив параметров.
Аргументы:
base
(строка): Базовый URL для каждой страницы. По умолчанию это'%_%'
, заменяемое значениемformat
.format
(строка): Строка для замены числа страницы. По умолчанию это'?paged=%#%'
.total
(целое число): Общее количество страниц.current
(целое число): Номер текущей страницы.show_all
(логическое): Показывать все ссылки. По умолчаниюfalse
.end_size
(целое число): Количество страниц, которые должны быть показаны в начале и конце пагинации. По умолчанию1
.mid_size
(целое число): Количество страниц, которые должны быть показаны вокруг текущей страницы. По умолчанию2
.prev_next
(логическое): Включать ссылки «Предыдущая» и «Следующая». По умолчаниюtrue
.prev_text
(строка): Текст для ссылки «Предыдущая». По умолчанию« Previous
.next_text
(строка): Текст для ссылки «Следующая». По умолчаниюNext »
.type
(строка): Тип возвращаемого значения. Может бытьplain
,array
илиlist
. По умолчаниюplain
.add_args
(массив): Дополнительные параметры запроса, которые нужно добавить к каждому URL.add_fragment
(строка): Фрагмент, который добавляется к каждому URL.before_page_number
(строка): Текст, который добавляется перед номером страницы.after_page_number
(строка): Текст, который добавляется после номера страницы.
Возвращаемое значение:
- Строка ссылок на страницы или массив строк в зависимости от параметра
type
.
Примеры использования
Простой пример использования функции paginate_links()
global $wp_query;
$big = 999999999; // уникальное число для замены
$args = array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
);
echo paginate_links($args);
Этот пример создаёт простую пагинацию с предыдущими и следующими ссылками, используя стандартные параметры.
Пагинация с настройками
global $wp_query;
$big = 999999999; // уникальное число для замены
$args = array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'show_all' => false,
'end_size' => 2,
'mid_size' => 3,
'before_page_number' => '<span class="page-num">',
'after_page_number' => '</span>',
);
echo paginate_links($args);
В этом примере добавлены дополнительные настройки для отображения более гибкой пагинации с пользовательским HTML перед и после номера страницы.
Пагинация с добавлением параметров запроса
global $wp_query;
$big = 999999999; // уникальное число для замены
$args = array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'add_args' => array('s' => get_search_query()), // добавляем параметр поиска
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
);
echo paginate_links($args);
Этот пример показывает, как добавить дополнительные параметры запроса, например, строку поиска, к каждому URL пагинации.
Заключение по paginate_links
Функция paginate_links()
в WordPress позволяет легко и гибко создавать ссылки пагинации для постов. С помощью различных аргументов и параметров вы можете настроить внешний вид и поведение пагинации в соответствии с вашими требованиями.