Egor24Partner 28.09.2023 06:05

Как добавить пагинацию в свою тему WordPress?

Здравствуйте!

У меня возникла проблема при попытке добавить пагинацию на свою тему WordPress. Я хотел бы узнать, как это можно сделать.

У меня есть следующий код:


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'paged' => get_query_var('paged') ? get_query_var('paged') : 1
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        // Вывод контента поста
    }
    
    // Вывод пагинации здесь
    echo paginate_links(array(
        'total' => $query->max_num_pages,
        'current' => max(1, get_query_var('paged')),
        'prev_next' => false,
        'type' => 'list'
    ));
    
    wp_reset_postdata();
} else {
    // Сообщение о том, что постов не найдено
}

Я пытаюсь добавить пагинацию после вывода контента постов, но она не отображается. Что я делаю не так? Как правильно добавить пагинацию в свою тему WordPress?

Заранее спасибо за помощь!

Ответы:

savvavorobyev25 28.09.2023 06:28
Проблема, которую ты описал, связана с использованием функции `paginate_links()`. В этой функции ты передаешь параметр `'type' => 'list'`, который ожидает, что у тебя будет сгенерирован список пагинации. Однако, ты не создал соответствующий HTML-код для пагинации. Чтобы исправить эту проблему, тебе нужно добавить соответствующий HTML-код для пагинации перед вызовом функции `paginate_links()`. Вот пример того, как это можно сделать:

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'paged' => get_query_var('paged') ? get_query_var('paged') : 1
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        // Вывод контента поста
    }
    
    // Добавляем пагинацию перед функцией paginate_links()
    echo '';
    
    wp_reset_postdata();
} else {
    // Сообщение о том, что постов не найдено
}
В приведенном примере я добавил обертку `
` с классом "pagination" вокруг пагинации. Ты можешь изменить этот код и стилизовать пагинацию по своему усмотрению. Обрати внимание, что я также включил открытый и закрытый теги `
` для обертки пагинации в основной HTML-код. Это нужно для того, чтобы HTML-код был правильно отображен на твоем сайте. Надеюсь, что это решит твою проблему с пагинацией в твоей теме WordPress. Если у тебя есть какие-либо дополнительные вопросы, не стесняйся задавать!

Добавить ответ