根据中提供的答案How to create custom URL routes? 我使用提供的相同函数创建了重写规则。
add_action( \'init\', \'wpse26388_rewrites_init\' );
function wpse26388_rewrites_init(){
add_rewrite_rule(
\'gallery/([0-9]+)/?$\',
\'gallery?custom_gallery_id=$1\',
\'top\' );
}
规则刷新后
.htaccess
文件具有以下规则:
RewriteRule ^gallery/([^/]+)/?$ /wordpress/gallery?custom_gallery_id=$1 [QSA,L]
到目前为止,一切都很好,然后我尝试对规则进行一些修改,如
add_action( \'init\', \'wpse26388_rewrites_init\' );
function wpse26388_rewrites_init(){
add_rewrite_rule(
\'topic/([^/]+)/([^/]+)/gallery/([0-9]+)/?$\',
\'gallery?custom_gallery_id=$3\',
\'top\' );
}
这似乎根本不起作用。有人能帮我解决这个问题吗?提前谢谢。
最合适的回答,由SO网友:Milo 整理而成
首先,您需要添加custom_gallery_id
如果尚未查询变量,请执行以下操作:
add_filter( \'query_vars\', \'wpse26388_query_vars\' );
function wpse26388_query_vars( $query_vars ){
$query_vars[] = \'custom_gallery_id\';
return $query_vars;
}
对于重写规则,您需要加载一个WordPress对象,即一个页面、一个类别等,所有内部重写都必须指向索引。php。如果“主题”、“地点”和“新德里”都是页面,则其外观如下:
function wpse26388_rewrites_init(){
add_rewrite_rule(
\'topic/([^/]+)/([^/]+)/gallery/([0-9]+)/?$\',
\'index.php?pagename=topic/$matches[1]/$matches[2]&custom_gallery_id=$matches[3]\',
\'top\' );
}
同时尝试
this plugin 用于分析和测试重写规则。