WordPress自定义帖子类型重写规则

WordPress自定义帖子类型重写规则,wordpress,rewrite,custom-post-type,Wordpress,Rewrite,Custom Post Type,我正在尝试为自定义帖子类型添加规则。默认情况下,查看帖子的URL为www.mydomain.com/job/post-slug 我想知道的是,该帖子也可以通过以下URL访问: www.mydomain.com/j/postid 我在functions.php文件中尝试了这一点,并在管理设置中刷新了永久链接: function rewrite_short_job_url() { add_rewrite_rule( '^j/([0-9]+)/?', 'index.php?post_type

我正在尝试为自定义帖子类型添加规则。默认情况下,查看帖子的URL为www.mydomain.com/job/post-slug

我想知道的是,该帖子也可以通过以下URL访问:

www.mydomain.com/j/postid

我在functions.php文件中尝试了这一点,并在管理设置中刷新了永久链接:

function rewrite_short_job_url() {

    add_rewrite_rule( '^j/([0-9]+)/?', 'index.php?post_type=job&id=$matches[1]', 'top' );
    flush_rewrite_rules( true );

}

add_action( 'init', 'rewrite_short_job_url' );

不适合我,我正在尝试理解重写API,但找不到解决方案。

我认为您应该使用以下方法:

function rewrite_short_job_url() {
    add_rewrite_rule( '^j/([0-9]+)/?', 'index.php?post_type=job&p=$matches[1]', 'top' );
}
add_action( 'init', 'rewrite_short_job_url' );
保持
post\u类型
var很重要,这样只有职位才会使用该重定向


您可以查看WordPress查询变量的列表。

我不确定您是否应该在每个请求期间刷新重写规则……另外,您是否手动测试了重定向?当您转到:
index.php?post_type=job&id=15
(或其他id)时会发生什么?您可能需要使用
page\u id
。好的,我知道了,我在重定向url中出错了,它是index.php?p=xxx,仅此而已。谢谢