@DenJel

Как работает пагинация Wordpress?

здравствуйте, объясните, пожалуйста, как работает пагинация в wordpress
<?php


            $page = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $offset = ($page - 1);

            $args = array(
                'taxonomy' => 'category_participants'
            );
            $categories = get_categories($args);

            if (count($categories) < 30) {
                $posts_per_page = count($categories);
            } else {
                $posts_per_page = 30;
            }
            echo '<ul>';
            for ($i = $offset * $posts_per_page; $i < ($offset + 1) * $posts_per_page; $i++) {
                $category = $categories[$i];

                echo '<li><span>' . ($i + 1) . '</span><a href="' . home_url() . '' . get_term_link($category->slug, 'category_participants') . '">' . $category->name . '</a></li>';
            }
            echo '</ul>';
            unset($category);

            if (strpos($_SERVER['REQUEST_URI'], '/page/') !== false) {
                $uri = explode('/', $_SERVER['REQUEST_URI']);
                foreach ($uri as $k => $v) {
                    if ($value == "")
                        unset($uri[$k]);
                }
                $offset = (array_pop($uri) * $posts_per_page) - $posts_per_page;
            }
            ?>

формирую список рубрик, таким способом и все прекрасно работает, если в урл вбиваешь domen/page/2 или page/3 и т.д. все переходит, но при вставке пагинации paginate_links() она вставляет ссылки от 1 до 4 страницы и все... и без разницы сколько в массиве объектов будет 2 или 15 тысяч. все равно вырисовывается ссылки на 4 страницы пагинации. Как ее настроить? может кто нибудь сталкивался?
  • Вопрос задан
  • 966 просмотров
Пригласить эксперта
Ответы на вопрос 2
7kmarat
@7kmarat
впепеу
В WordPress есть встроенная пагинация the_posts_pagination();
Ответ написан
cesnokov
@cesnokov
<head>&nbsp;</head>
Могу предположить, что в Вашем случае paginate_links() выводит страницы относящиеся к The_Loop, но никак не к get_categories(). Вам необходимо самому написать функцию которая будет выводить нужную нумерацию на основании $_SERVER['REQUEST_URI'].
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы