Answers:
注册自定义帖子类型时,必须指定重写规则不应以现有的URL结构开头。
简而言之,这意味着您register_post_type
通话中的这一行:
'rewrite' => array('slug' => 'projects'),
应该变成这样:
'rewrite' => array('slug' => 'projects','with_front' => false),
有关更多信息,请rewrite
从Codex条目上查看参数。register_post_type
编辑:只需确保在更新代码后,通过访问“设置”>“永久链接”即可刷新重写规则。否则,您仍然会看到旧的链接。
example.com/projects/title-of-post
。我也访问了永久链接页面。是什么原因造成的?我的中没有任何重写规则htaccess
。
我确实在3天前遇到了这个问题,然后在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
变量中内容,而这正是我最终使用的内容。
祝您好运,并且一如既往-请务必回来,并告诉我们如何解决!:)