Пользовательский тип записей в архиве не работает на дочерней теме woo canvas

Я нахожусь в процессе создания дочерней темы для woo canvas и пытаюсь заставить свою нумерацию страниц работать на моей странице архива для нового настраиваемого типа записи под названием book.

Код регистрации почтового типа:

$args = array(
'labels'             => $labels,
'public'             => true,
'publicly_queryable' => true,
'show_ui'            => true,
'show_in_menu'       => true,
'query_var'          => true,
'rewrite'            => array( 'slug' => 'book' ),
'capability_type'    => 'post',
'has_archive'        => true,
'hierarchical'       => false,
'menu_position'      => null,
'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);

register_post_type( 'book', $args );

который находится в моем файле функций и работает правильно.

У меня есть следующий код в моем архиве-book.php, который показывает ссылки на страницы, но выдает ошибку 404, когда я перехожу на страницу, которая разбита на страницы, например. — HTTP: // локальный / шр / книги / страницы / 2 / :

<?php

global $wp_query, $woo_options, $paged, $page, $post;
?>
<?php get_header(); ?>
<?php

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

$args = array(
'post_type' => 'book',
'paged' => $paged,
'posts_per_page' => 3
);
$query = new WP_Query( $args );
while ( $query->have_posts() ) { $query->the_post(); ?>
<?php echo the_title(); ?>
<?php } ?>
<?php
woo_pagenav( $query );
wp_reset_query();
get_footer(); ?>

Я установил постоянные ссылки на «Имя сообщения» и сбросил постоянные ссылки несколько раз, выбрав и имя сообщения, и постоянные ссылки по умолчанию.

0

Решение

Вторая страница не существует, поэтому ваш шаблон архива никогда не загружается. Количество сообщений по умолчанию на странице будет использоваться в исходном запросе, и при этом условии не будет второй страницы сообщений.

Если у вас есть 5 записей в книге, например, по вашему заказному запросу, на первой странице будет отображаться 3, а во второй — 2. При количестве сообщений по умолчанию на странице (10) все 5 будут отображаться на первой странице, и в этом не будет необходимости страница 2. Затем WordPress загружает шаблон 404.

Вам нужно использовать pre_get_posts крючок для изменения основного запроса.

Пример:

/**
* Change the number of posts per page on the book archive.
*
* @param object $query
*/
function wpse_modify_book_archive_query( $query ) {

// Only apply to the main loop on the frontend.
if ( is_admin() || ! $query->is_main_query() {
return false;
}

// Check we're viewing the book archives.
if ( $query->is_post_type_archive( 'book' ) ) {
$query->set( 'posts_per_page', 3 );
}
}
add_action( 'pre_get_posts', 'wpse_modify_book_archive_query' );
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector