Pagination posts. Url format

时间:2013-06-22 作者:Anton Abramov

我对很长的帖子使用分页。所以我这里有个问题。我对标准的utl结构不满意(在我的项目中,这有几个个人原因)。例如,我有帖子

/post.htm
我需要拿到它的第二页

/post2.htm
不是

/post.htm/2
我确信我不会用slug post2创建帖子/页面我如何才能以这种方式更改标准url?我试过这个

add_action( \'init\', \'wpa5413_init\' );
function wpa5413_init()
{
    add_rewrite_rule(\'^([^/]+)([0-9]{1,2}).htm$\',\'$matches[1].htm/$matches[2]\',\'top\');
}
但它不起作用。。。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您的重写规则格式不正确。这个$rewrite 参数必须指向index.php 设置查询变量后,WordPress可以创建默认查询:

add_action( \'init\', \'wpa103850_init\' );
function wpa103850_init()
{
    add_rewrite_rule(
        \'^([^/]+)([0-9]{1,2}).htm$\',
        \'index.php?name=$matches[1]&page=$matches[2]\',
        \'top\'
    );
}
但是,由于规范重定向,这仍然无法正常工作。WordPress希望为任何给定的帖子/页面强制使用一个URL。您必须删除该过滤器以防止发生这种情况,但请注意,这将有其他可能不受欢迎的副作用,因为不会发生规范重定向。

remove_filter( \'template_redirect\', \'redirect_canonical\' );
可能有选择地应用规范重定向是可能的,但我现在没有时间去挖掘源代码来确定这一点!

结束

相关推荐

Single-mySlug.php可以工作,而ARCHIVE-mySlug.php不行。自定义帖子类型

我正在用插件注册一个自定义帖子类型(列表),它有两个分类法。这一切似乎都如预期的那样起作用。我可以使用single-listing.php 但我无法使用archive-listing.php. 我只是试过了taxonomy-organisation.php 这就是CPT分类法,这也很有效。我使用了一个子主题,只使用了父存档/单子/分类页面的副本这是我命名的WP 2012主题文件的副本archive-listing.php: http://pastebin.com/3BBr7eDu这是我的CPT插件:htt