我整天都在寻找答案,但没有运气。
我制作了自定义帖子类型,因此我可以在页面模板上显示帖子但分页无效。 我收到404错误
也许有些人可以指导我并告诉我这是什么问题。这是 site。
使用此密码 broncosrule 。 谢谢。
这是代码。
自定义页面模板:
<?php
/**
* Template Name: Custom Page
* The custom page template file
*/
?>
<?php get_header(); ?>
<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$custom_args = array(
'post_type' => 'trestleboard',
'posts_per_page' => 1,
'paged' => $paged
);
$custom_query = new WP_Query( $custom_args ); ?>
<?php if ( $custom_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
<article class="loop">
<!--<h3><?php the_title(); ?></h3>-->
<div class="content">
<?php the_content(); ?>
</div>
</article>
<?php endwhile; ?>
<!-- end of the loop -->
<!-- pagination here -->
<?php
if (function_exists(custom_pagination)) {
custom_pagination($custom_query->max_num_pages,"",$paged);
}
?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
<?php get_footer(); ?>
Functions.php文件
// Our custom post type function
function custom_pagination($numpages = '', $pagerange = '', $paged='') {
if (empty($pagerange)) {
$pagerange = 2;
}
/**
* This first part of our function is a fallback
* for custom pagination inside a regular loop that
* uses the global $paged and global $wp_query variables.
*
* It's good because we can now override default pagination
* in our theme, and use this function in default queries
* and custom queries.
*/
global $paged;
if (empty($paged)) {
$paged = 1;
}
if ($numpages == '') {
global $wp_query;
$numpages = $wp_query->max_num_pages;
if(!$numpages) {
$numpages = 1;
}
}
/**
* We construct the pagination arguments to enter into our paginate_links
* function.
*/
$pagination_args = array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%',
'total' => $numpages,
'current' => $paged,
'show_all' => False,
'end_size' => 1,
'mid_size' => $pagerange,
'prev_next' => True,
'prev_text' => __('«'),
'next_text' => __('»'),
'type' => 'plain',
'add_args' => false,
'add_fragment' => ''
);
$paginate_links = paginate_links($pagination_args);
if ($paginate_links) {
echo "<nav class='custom-pagination'>";
echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> ";
echo $paginate_links;
echo "</nav>";
}
}
答案 0 :(得分:2)
我认为问题出现了,因为您的页面slug与自定义帖子类型slug相同。
您可以通过临时修改页面slug来快速检查这是否是问题。
选项:
答案 1 :(得分:0)
你能试试这个链接吗?他们详细解释了这一点。
另外请检查您的重写规则。
https://code.tutsplus.com/articles/custom-post-type-pagination-chaining-method--wp-21444
答案 2 :(得分:0)
这对我有用
请使用自定义帖子类型名称"your_custom_post_type"
function custom_posts_per_page( $query ) {
//fixing pagination of custom post type
if ( $query->is_archive('your_custom_post_type') ) {
set_query_var('posts_per_page', 1);
}
}
add_action( 'pre_get_posts', 'custom_posts_per_page' );