Как настроить пагинацию в WordPress для пользовательского типа записей?

Как исправить ошибку в моем коде PHP для WordPress, который отображает новости? Я скопировал его из интернета, но почему-то он не работает. Вот участок кода, который вызывает проблемы: 
```php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;

global $wp_query;
$arg = array(
    'post_type' => 'news',
    'posts_per_page' => 3,
    'order' => 'DESC',
    'orderby' => 'date',
    'paged' => $paged
);

$wp_query = new WP_Query($arg);
if ($wp_query->have_posts()) {
    while ($wp_query->have_posts()) {
        $wp_query->the_post(); ?>
        <div class="col-lg-4 col-md-6 col-12 news-item">
            <div class="news-slide">
                <a href="<?php print get_permalink(); ?>">
                    <div class='news-slide-img'><img src="<?php print get_the_post_thumbnail_url(); ?>"></div>
                </a>
                <div class="news-meta">
                    <div><a href="<?php print get_permalink(); ?>"><?php the_title(); ?></a></div>
                    <div><?php print get_the_date('F d, Y'); ?></div>
                </div>
            </div>
        </div>
        <?php } ?>
```
  • 23 апреля 2024 г. 9:30
Ответы на вопрос 1
Для настройки пагинации в WordPress для пользовательского типа записей (например, тип записей "news"), вам нужно добавить параметр 'paged' в массив аргументов (args) для запроса WP_Query. В вашем случае, вы уже добавили этот параметр, но вам также нужно добавить параметр 'paged' в ссылки пагинации. 

Чтобы исправить ошибку в вашем коде, добавьте следующий код после цикла while, чтобы вывести пагинацию:

```php
if (function_exists('wp_pagenavi')) {
    wp_pagenavi(array('query' => $wp_query));
}
```

Этот код добавит стандартную пагинацию WordPress к вашему пользовательскому типу записей "news".

Если вы не используете плагин wp_pagenavi, то вы можете использовать стандартную функцию пагинации WordPress, например:

```php
previous_posts_link('<< Previous');
next_posts_link('Next >>', $wp_query->max_num_pages);
```

Этот код отобразит ссылки "Previous" и "Next" для пагинации. 

После добавления этого кода, ваша пагинация должна работать корректно для пользовательского типа записей "news".
Похожие вопросы