Php Wordpress自定义后分页404错误

Php Wordpress自定义后分页404错误,php,wordpress,pagination,Php,Wordpress,Pagination,我一整天都在四处寻找答案,但运气不好 我制作了一个自定义的帖子类型,因此我可以在页面模板上显示帖子,但是分页不起作用我收到一个404错误 也许你们中的一些人可以指导我,告诉我问题出在哪里。这里是 使用此密码broncosrule。 多谢各位 这是代码 自定义页面模板: <?php /** * Template Name: Custom Page * The custom page template file */ ?> <?php get_header(); ?>

我一整天都在四处寻找答案,但运气不好

我制作了一个自定义的帖子类型,因此我可以在页面模板上显示帖子,但是分页不起作用我收到一个404错误

也许你们中的一些人可以指导我,告诉我问题出在哪里。这里是

使用此密码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'       => __('&laquo;'),
    'next_text'       => __('&raquo;'),
    '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>";
  }

}
//我们的自定义post类型函数
函数自定义分页($numpages='',$pagerange='',$paged=''){
if(空($pagerange)){
$pagerange=2;
}
/**
*我们功能的第一部分是回退
*用于常规循环内的自定义分页,该循环
*使用全局$paged和全局$wp_查询变量。
* 
*这很好,因为我们现在可以覆盖默认分页
*并在默认查询中使用此函数
*和自定义查询。
*/
全球$paged;
如果(空($paged)){
$paged=1;
}
如果($numpages==''){
全局$wp_查询;
$numpages=$wp\u query->max\u num\u页面;
如果(!$numpages){
$numpages=1;
}
}
/** 
*我们构造分页参数以进入分页链接
*功能。
*/
$pagination_args=数组(
'base'=>get_pagenum_link(1)。'%\%',
'格式'=>'第/%#%'页,
“总计”=>$numpages,
“当前”=>$paged,
“全部显示”=>False,
“结束大小”=>1,
“中等大小”=>$pagerange,
“上一步”=>正确,
“上一个文本”=>“«;”,
“下一个文本”=>“»;”,
'类型'=>'普通',
'add_args'=>false,
“添加片段”=>“
);
$paginate_links=paginate_links($pagination_args);
如果($paginate_链接){
回声“;
呼应“$numpages.”中的“$paged.”页;
echo$paginate_链接;
回声“;
}
}

你能试试这个链接吗。他们解释得很详细

另外,请检查您的重写规则


我认为问题的出现是因为您的页面slug与自定义的post类型slug相同

通过临时修改页面slug,可以快速检查这是否是问题所在

选项:

  • 修改自定义帖子类型的重写规则,或
  • 修改页首

祝你好运

这是我的工作 请使用您的自定义帖子类型名称更改它。
“您的自定义帖子类型”


你能用直接链接访问你的网页吗?像@Muhammad No,我选择了页面内的模板,这是这样的,正如你所看到的,它显示了一篇文章,只是分页不起作用。@AgnesPandek请你再次保存你的permalink settings>permalinks,然后检查它?是的,我更改了页面slug及其工作状态,请支持我。。。今天我浪费了很多时间。谢谢!!!!我自己也在那上面浪费了几个小时!
 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' );