自定义帖子类型和自定义分类固定链接

时间:2011-06-15 作者:Homem Robô

我有两页。

/client-a/
/client-b/
我有一个自定义的帖子类型,叫做“case”:

$case_type = array(
    \'labels\' => $case_labels,
    \'public\' => true,
    \'publicly_queryable\' => true,
    \'show_ui\' => true,
    \'query_var\' => \'case\',
    \'rewrite\' => array( \'slug\' => \'cases\', \'with_front\' => false ),
    \'capability_type\' => \'post\',
    \'hierarchical\' => false,
    \'menu_position\' => 46,
    \'has_archive\' => true,
    \'supports\' => array(\'title\',\'editor\'),
); 
register_post_type( \'case\' , $case_type );
最后,我有一个自定义分类法,称为“类型”:

register_taxonomy(\'type\',array(\'case\'),array(
    \'public\' => TRUE,
    \'show_tagcloud\' => FALSE,
    \'hierarchical\' => TRUE,
    \'labels\' => $categoria_labels,
    \'show_ui\' => TRUE,
    \'query_var\' => TRUE,
    \'rewrite\' => array( \'slug\' => \'genre\', \'with_front\' => false )
))
所有my类型的页面名称都相同:client-a、client-b。

如何重写permalink规则以接受此结构:

client-a/ --> page, lists all \'cases\', uses a template
client-a/subpage --> this is a subpage

client-a/cases/case-a.html --> this is a custom post type WITH the genre "client-a"
client-b/cases/case-b.html --> this is a custom post type WITH the genre "client-b"
这种结构的最佳方法是什么?

当我使用此解决方案时:http://xplus3.net/2010/05/20/wp3-custom-post-type-permalinks/comment-page-1/#comment-1005

我让我的永久链接用于自定义帖子类型和自定义分类法,但会中断所有页面的永久链接。

谢谢

1 个回复
SO网友:Tom J Nowell

函数中类似于此的内容。php或插件可以做到这一点:

function custom_rewrite( $wp_rewrite ) {
    $feed_rules = array(
        \'([^/]+)/cases/([^/]+).html\'    =>  \'index.php?genre=\'. $wp_rewrite->preg_index(1) .\'&case=\'. $wp_rewrite->preg_index(2)
    );
    $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_filter( \'generate_rewrite_rules\', \'custom_rewrite\' );
添加/编辑/删除该代码时,需要刷新/刷新永久链接(WP Dashboard>Settings>permalinks>Save Changes)。如果它不能正常工作,您可能需要稍微调整它,但它演示了如何执行的基本原则。

结束

相关推荐

curl problem or permalinks

我刚刚配置了我的VPS,我使用的是Centos,一切都很好,但如果我将永久链接设置为自定义结构,然后接受主页,没有帖子出现,它会显示404页,我想这是因为我没有启用curl,但我不知道我的php在哪里。我的centos中的ini文件?好的,我的卷曲被启用了,我检查过了phpinfo(); 这里是URLhttp://74.117.158.182/info.php但如果我在我的wordpress中设置了永久链接,那么接受主页,所有都会给我404页,你可以在这个URL上查看http://mbas.co.in如果