我正在开发一个插件,它将设置一个新的自定义帖子类型(锦标赛),并使用一个使用WP Cron调用的API为这个CPT创建帖子。CPT有一个名为season的自定义字段,我想在permalink中使用它。
我已将permalink设置如下:
http://local.wordpress.test/tournament/2019/my-tournament-name
锦标赛是post类型
2019年是赛季
我的锦标赛名称是post\\u名称
我使用以下代码创建了permalink:
function rat_post_type_link( $link, $post, $leavename, $sample ) {
if ( $post->post_type == \'tournament\' ){
$season = get_post_meta( $post->ID, \'rat-tournament-season\', true);
return home_url( \'tournament/\' . $season . \'/\' . $post->post_name );
} else {
return $link;
}
}
add_filter(\'post_type_link\', \'rat_post_type_link\', 10, 4);
然后我添加了一个重写规则来显示特定的帖子
function rat_custom_post_type_rewrite_rules() {
add_rewrite_rule(
\'tournament/[0-9]{4}/([^/]+)?$\',
\'?post_type=tournament&page_name=$matches[1]\',
\'top\');
}
add_action(\'init\', \'rat_custom_post_type_rewrite_rules\');
我正在使用
flush_rewrite_rules()
在我的插件激活器中,可以确认是否调用了它。我已安装
Rewrite Analyzer 调试重写规则。
我测试并确认链接http://local.wordpress.test/?tournament=my-tournament-name 正在工作。
我已经在rat_custom_post_type_rewrite_rules()
函数,并在调试中显示。log,这样我就知道函数被调用了。
我的问题是在重写分析器显示的列表中找不到重写规则。关于为什么会这样,有什么建议吗?
附加说明:我没有使用add_rewrite_tag()
因为我在querystring上不需要它