Wordpress 在使用 CPT 和分页时提供自定义 404.php(除第一页外的所有页面)

好的,我迷路了,我目前正在使用 PHP 开发带有 wordpress 的下划线启动主题。我使用一些自定义帖子类型。因此,在主页中,我使用循环显示了一些带有分页的自定义帖子


  global $wp_query;

 $wp_query = new WP_Query( array(

    'post_type' => 'my_cpt',

    'posts_per_page' => 8,

    'paged' => $paged

  )

); 

if ( $wp_query->have_posts() ) : 

 while ( $wp_query->have_posts() ) :    $wp_query->the_post(); //display the post .. which I did

 endwhile;


//Pagination starts here

 $total_pages = $wp_query->max_num_pages;


 if ($total_pages > 1){


     $current_page = max(1, get_query_var('paged'));


     echo paginate_links(array(

         'base' => get_pagenum_link(1) . '%_%',

         'format' => '/page/%#%',

         'current' => $current_page,

         'total' => $total_pages,

         'prev_text'    => __('« prev'),

         'next_text'    => __('next »'),

     ));

 } //Pagination ends here

endif;

此代码位于 home.php 和 index.php 中。


除了主页(对于页面http://mywebsite/page/X ,其中 X 是页码并且 >1 )该网站直接显示 404.php ,当我删除 404.php 时一切正常主题 !!Wordpress 将用户直接路由到 404.php(如果存在),我是否遗漏了什么?这应该以这种方式工作吗?,链接到层次结构


慕运维8079593
浏览 86回答 1
1回答

德玛西亚99

我应该调用的网址不是 http://mywebsite/page/X而是: http://mywebsite/my_cpt/page/X我的自定义帖子类型存档页面重定向到 404。因为我在自定义帖子类型注册功能中缺少这一行:"has_archive" => true,我必须在我的functions.php中添加这一行才能让它工作:flush_rewrite_rules( false );
打开App,查看更多内容
随时随地看视频慕课网APP