Как сделать пейджинг для WP_Term_Query? - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть таксономия "автора книги". У меня более 2000 авторов книг. У меня есть шаблон book-author.php для отображения 2000 book-author. Проблема в том, что я хочу пейджинг, 10 авторов на страницу. Пожалуйста, помогите мне.

$args = array(
'taxonomy'  => 'book-author',
'number'    => 10,
'orderby'   => 'name',
'order'     => 'ASC',
'hide_empty'    => false,

);

$query = new WP_Term_Query($args);
foreach ($query->get_terms() as $term) {

echo $term->name;
// I want to display 10 book author names here, and the next page will display 10 more book authors.

}

Спасибо!

1 Ответ

0 голосов
/ 11 ноября 2019

Итак, чтобы понять, вы хотите отобразить 10 терминов на странице, а затем на странице 2 отобразить следующие 10 терминов?

Для такой нумерации страниц (Wordpress предлагает разбиение на страницы только для постов), вы можете слушатьдля пользовательской переменной $ _GET в шаблоне с номером страницы, а затем соответствующим образом измените запрос запроса.

Вот небольшой код, который поможет вам выбрать правильный путь (не проверено).

$paged = isset($_GET['term_page']) ? intval($_GET['term_page']) : 1;
if($paged < 1) $paged = 1;

$args = array(
    'taxonomy'  => 'book-author',
    'number'    => 10,
    'offset'    => ($paged - 1) * 10
    'orderby'   => 'name',
    'order'     => 'ASC',
    'hide_empty'    => false,

);

$query = new WP_Term_Query($args);
foreach ($query->get_terms() as $term) {
    echo $term->name;
}
?>

<a href="add_query_arg('term_page', $paged--)">Prev</a> | <a href="add_query_arg('term_page', $paged++)">Next</a>
...