Как сделать пагинацию для списка элементов таксономии (список меток, атегорий и т.д.) в WordPress
Этот пример поможет разбить на страницы список категорий или меток.
Термины таксономии получаем с помощью функции get_terms.
Пример кода, который выводит список меток.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
$term_ids = get_terms(array( 'taxonomy' => 'post_tag', 'hide_empty' => false, 'fields' => 'ids', )); $number_tags = count($term_ids); //количество меток всего $tags = 3; //количество меток на страницу $pagged = ($number_tags / $tags); //количество страниц пагинации $current_page = @$_GET['current_page']; //текущая страница пагинации if ($current_page) { $offset = ($current_page * $tags) - $tags; //смещение } else { $offset = 0; } $terms = get_terms(array( 'taxonomy' => 'post_tag', 'number' => $tags, 'hide_empty' => false, 'offset' => $offset, )); foreach ($terms as $term) { echo $term->name . '<br>'; } |
Тут есть два нужных параметра
number — количество выводимых терминов
offset — смещение, т.е. то, что и нужно для пагинации.
И далее в самый низ вставляете этот код, для вывода ссылок на пагинацию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
for ($i = 1;$i < $pagged;$i++) { if ($i == 1) { if (!($current_page)) { echo '<span class="current">' . $i . '</span>'; } else { echo '<a href="/" class="inactive" >' . $i . '</a>'; } } else { if ($i == $current_page) { echo '<span class="current">' . $i . '</span>'; } else { echo '<a href="/?current_page=' . $i . '" class="inactive" >' . $i . '</a>'; } } } |