Архив типов сообщений Timber Custom Post возвратил 404 нумерации страниц

Я использую Timber / Twig для этого сайта, над которым работаю. У меня есть архивный файл PHP, который отображает пользовательский тип сообщения «подкаст» и создает разбиение на страницы, которое появляется на странице архива сообщений:

"локальный / подкасты /"

Он создает заданное количество страниц в зависимости от того, сколько сообщений на странице я установил. Бывший. Всего 10 постов, 3 поста на страницу, рендеринг 3 поста и 4 страницы разбивки на страницы. Однако ссылки '/ podcasts / page / 2' или более возвращают 404.

Как я могу заставить его вернуть архив-шаблон ("podcast_cpt"). Twig со следующим набором сообщений?

Мой файл Archive.php выглядит так:


global $paged;
if (!isset($paged) || !$paged){
    $paged = 1;
}

$templates = array( 'archive.twig', 'index.twig' );

$context = Timber::get_context();

$podargs = array(
    // Get post type project
    'post_type' => 'sl_podcasts_cpts',
    'posts_per_page' => 3,
    'paged' => $paged,
    'page' => $paged,
    // Order by post date
    'orderby' => array(
        'date' => 'DESC'
    ));

$myCollection = new Timber\PostQuery( $podargs );
$context['podcasts'] = $myCollection;
$context['pagination'] = $myCollection->pagination();


$context['title'] = 'Archive';

if ( is_day() ) {
    $context['title'] = 'Archive: ' . get_the_date( 'D M Y' );
} else if ( is_month() ) {
    $context['title'] = 'Archive: ' . get_the_date( 'M Y' );
} else if ( is_year() ) {
    $context['title'] = 'Archive: ' . get_the_date( 'Y' );
} else if ( is_tag() ) {
    $context['title'] = single_tag_title( '', false );
} else if ( is_category() ) {
    $context['title'] = single_cat_title( '', false );
    array_unshift( $templates, 'archive-' . get_query_var( 'cat' ) . '.twig' );
} else if ( is_post_type_archive() ) {
    $context['title'] = post_type_archive_title( '', false );
    array_unshift( $templates, '/archives/archive-' . get_post_type() . '.twig' );
}

$context['posts'] = new Timber\PostQuery();

Timber::render( $templates, $context );

И он отображается в файле ветки:

{% for podcast in podcasts %}
     {% include 'partials/podcast-player.twig' %}
{% endfor %}
{% include 'pagination.twig' with {'posts': podcasts} %}

person Matt    schedule 12.03.2019    source источник
comment
Сбросили ли вы настройки постоянной ссылки после того, как зарегистрировали собственный тип сообщения?   -  person Gchtr    schedule 13.03.2019
comment
Да! Я промывал их несколько раз. По-прежнему не повезло.   -  person Matt    schedule 13.03.2019


Ответы (1)


Я думаю, у вас есть лишний аргумент "страницы". Возможно, вам потребуется проверить это https://codex.wordpress.org/Pagination

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$podargs = array(
    'post_type' => 'sl_podcasts_cpts',
    'posts_per_page' => 3,
    'paged' => $paged,
    'orderby' => array(
        'date' => 'DESC'
    ));
person nanika    schedule 13.03.2019
comment
У меня было как с, так и без. Я считаю, что эта строка была пережитком и была удалена без улучшения кода. - person Matt; 13.03.2019