Clash of the rewrites

时间:2011-05-20 作者:Cioppino

我有一个类别叫做“邻里”。我也有“邻里”中的儿童类别,例如莱克伍德、高地公园。。。

当我单击“高地公园”时,url是/页面/类别/社区/高地公园

如何更改htacces规则,以便在查看highland park时,url将是邻居/highland park/

我还写了一篇题为“高地公园”的帖子,以便让社区页面生成“高地公园”类别。但当你点击时,它会带你进入一个帖子页面。

我有一个重写规则,当你去/邻里/它重写页面/类别/邻里关系时可以使用/

但转到儿童类别会给你带来一个帖子。

EDIT: 以下是的内容。htaccess文件

RewriteRule ^sellers/? pages/sellers/
RewriteRule ^buyers/? pages/buyers/
RewriteRule ^neighborhoods/? pages/category/neighborhoods/

1 个回复
SO网友:Matthew Boynes

最好的选择是将社区注册为自定义分类法,并使用它而不是类别。在主题的功能中。php文件,只需添加:

function neighborhoods_init() {
    // create a new taxonomy
    register_taxonomy(
        \'neighborhoods\',
        \'post\',
        array(
            \'label\' => __( \'Neighborhoods\' ),
            \'hierarchical\' => true
        )
    );
}
add_action( \'init\', \'neighborhoods_init\' );
接下来,进入永久链接设置页面并单击保存,以确保它们得到刷新。现在,当您编辑帖子时,您将在邻居的侧栏中有一个新框。您的社区现在将有以/neighborhoods/开头的链接!当然,您必须移植您的类别(并且您可能希望删除旧类别以避免混淆)。

注册分类法时,您还有其他选择;看见http://codex.wordpress.org/Function_Reference/register_taxonomy 了解所有详细信息。例如,您可以考虑添加\'rewrite\' => array( \'slug\' => \'neighborhood\' ) 因为每个邻里都是单数而不是复数,所以URL例如/邻里/高地公园/(嘿,我很挑剔)。

注意:确保删除RewriteRule ^neighborhoods/? pages/category/neighborhoods/ 也可以从您的htaccess文件。

结束