WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Нужно добавить пагинацию на страницу

Есть проблема с пагинацией для сайта на wordpress.

Дело в том, что нужно добавить пагинацию на страницу. На этой странице буду выводить отзывы, которые хранятся в базе данных. Самой базе данных создал таблицу в phpmyadmin и загрузил туда нужные мне данные.

Проблем с выводом этих данных на сайт нету. Но возникает проблема с пагинацией этих отзывов.

Можете подсказать, как реализовать пагинацию. Стандартными решениями wordpress не получается. Так как wp_query делает запрос на стандартную таблицу в бд wordpress, а именно wp_post. А мне необходимо именно к таблице, созданной мной(wp_tbl).

Может все такие такую задачу и не решить с помощью стандартных решений wp и нужно юзать все на чистом php.

Подскажите уже 2 дня мучаюсь. Если не решение, то хотя бы можно ли это стандартными решениями wp сделать или же юзать php.

Буду очень благодарен за помощь.

P.S. Заранее спасибо, всего наилучшего!

0
Илья
21 день назад
  • 1
    Andrew182 america-xix.ru

    Может, чтобы не мучаться, создать не произвольную таблицу, а произвольный тип записей в стандартной таблице wp_posts и позволить WordPress сделать многое за Вас? Недостающую информацию об отзыве можно хранить в мета-полях.

    Теперь по сути вопроса, чтобы помучаться:

    1. Если на сайте используются пермалинки, то нужно добавить произвольное правило перезаписи для "номерной" страницы с отзывами https://wp-kama.ru/function/add_rewrite_rule Обратите внимание на все особенности добавления правила.

    2. Нужно написать произвольную функцию создания пагинации. Можно взять за основу стандартную функцию https://wp-kama.ru/function/paginate_links. В функции потребуется три параметра - количество строк в произвольной таблице, количество строк на странице и шаблон ссылки на "номерную" страницу.

    3. Модифицировать SQL-запрос, которым получаются строки из произвольной таблицы, добавив в него
      LIMIT [количество строк на странице] OFFSET [количество строк на странице * (номер страницы - 1) ]

    Как-то так.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация