自定义帖子类型分页404修复?

时间:2011-07-10 作者:Dale-Anthony

一整天都在努力工作,但没有任何运气。。。

我有一个名为“news”的自定义帖子类型和一个归档模板(archive news.php),在这里我想显示两篇带有分页的帖子,这很好,直到我尝试转到“下一页”(/news/page/2),返回错误404。

你知道如何解决这个问题/我做错了什么吗?

我花了整整一天的时间通过搜索Google和WordPress表单来寻找解决方案,我找到了很多解决方案,到目前为止没有一个有效。

我的自定义帖子类型函数:http://pastebin.com/uG1L6YNu
我的重写规则打印:http://pastebin.com/jbaDANYr

4 个回复
SO网友:Dale-Anthony

这对我来说很有用。。。对于那些有相同问题的人来说,所有代码都是正确的。

问题是WordPress默认设置为每页显示10篇帖子,这与我的查询冲突(限制为2篇帖子)为了解决问题,我将WordPress设置(管理仪表板中的设置/读取)更改为1。

SO网友:eveevans

我在这里找到了一个解决方案:http://walrusinacanoe.com/web-development/742

优雅实用:

add_action( \'parse_query\',\'changept\' );
function changept() {
    if( is_category() && !is_admin() )
        set_query_var( \'post_type\', array( \'post\', \'your_custom_type\' ) );
    return;
}

SO网友:danielwiener

您可能已经尝试过此操作,但重置永久链接可以解决此问题。转到设置->永久链接,然后再次保存永久链接。

SO网友:ktscript

try this variant:

add_action(\'pre_get_posts\',\'custom_pre_get_posts\'); 
function custom_pre_get_posts( $query ) 
{  
    if( $query->is_main_query() && !$query->is_feed() && !is_admin()) {
        $query->set( \'paged\', str_replace( \'/\', \'\', get_query_var( \'page\' ) ) );  
    }  
} 

add_filter(\'request\', \'custom_request\');
function custom_request($query_string )
{ 
    if( isset( $query_string[\'page\'] ) ) { 
        if( \'\'!=$query_string[\'page\'] ) { 
            if( isset( $query_string[\'name\'] ) ) { 
                unset( $query_string[\'name\'] ); 
            } 
        } 
    } return $query_string; 
}
结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s