自定义帖子类型URL重写?

时间:2012-05-25 作者:Jake

我为我的公文包项目设置了一个自定义帖子类型。此的主URL位于/projects/

现在,我还将我的博客帖子永久链接到/articles/*/ 对于permalink结构。这意味着当我去查看公文包项目时,URL会更改为/articles/projects/project-name/

我知道一定有办法重写permalinksonly 对于我的项目,自定义帖子类型。但是我不熟悉声明URL slug的语法-如果能得到任何帮助,我将不胜感激!

2 个回复
最合适的回答,由SO网友:0x61696f 整理而成

注册自定义帖子类型时,必须指定重写规则不应以现有URL结构作为前缀。

简而言之,这意味着register_post_type 电话:

\'rewrite\' => array(\'slug\' => \'projects\'),
应转变为:

\'rewrite\' => array(\'slug\' => \'projects\',\'with_front\' => false),
有关更多信息,请查看rewrite 来自的参数codex entry on register_post_type

编辑:只需确保在更新代码后,通过访问设置>永久链接刷新重写规则即可。否则,您仍将看到旧链接

SO网友:cmegown

我三天前就遇到了这个问题,然后我在wp.tutsplus.com. 为了更好地适应您的问题,我交换了自己的代码,但这就是我在看完本系列之后得到的结果。此外,请记住,这是未经测试的。

// sets custom post type
function my_custom_post_type() {
    register_post_type(\'Projects\', array(   
       \'label\' => \'Projects\',\'description\' => \'\',
       \'public\' => true,
       \'show_ui\' => true,
       \'show_in_menu\' => true,
       \'capability_type\' => \'post\',
       \'hierarchical\' => false,
       \'publicly_queryable\' => true,
       \'rewrite\' => false,
       \'query_var\' => true,
       \'has_archive\' => true,
       \'supports\' => array(\'title\',\'editor\',\'excerpt\',\'trackbacks\',\'custom-fields\',\'comments\',\'revisions\',\'thumbnail\',\'author\',\'page-attributes\'),
       \'taxonomies\' => array(\'category\',\'post_tag\'),
       // there are a lot more available arguments, but the above is plenty for now
    ));
}

add_action(\'init\', \'my_custom_post_type\');

// rewrites custom post type name
global $wp_rewrite;
$projects_structure = \'/projects/%year%/%monthnum%/%day%/%projects%/\';
$wp_rewrite->add_rewrite_tag("%projects%", \'([^/]+)\', "project=");
$wp_rewrite->add_permastruct(\'projects\', $projects_structure, false);
理论上,您可以交换存储在$projects_structure 变量,这里的内容就是我最终使用的内容。

祝你好运,一如既往-一定要回来让我们知道结果如何!:)

结束

相关推荐