ADD_REWRITE_RULE()对子页面不友好

时间:2012-05-01 作者:Matt Vickers

function my_add_rewrite_rules() {

  add_rewrite_rule(\'testing/([^/]+)?$\', \'index.php?pagename=testing&event_slug=$matches[1]\', \'top\' ); 

}
add_action( \'init\', \'my_add_rewrite_rules\' );

function add_query_vars( $query_vars ) {
  $query_vars[] = \'event_slug\';
  return $query_vars;
}
add_filter( \'query_vars\', \'add_query_vars\' );   
测试/foo-工作,显示foo

如果我有testing 设置为无父级,重写工作正常,一切都很好。

如果我设置testing 对一个about, 并将add\\u rewrite\\u规则更新为。。

add_rewrite_rule(\'about/testing/([^/]+)?$\', \'index.php?pagename=testing&event_slug=$matches[1]\', \'top\' ); 
。。。它加载about/testing,但去掉了我的自定义query\\u var,并正常显示页面。

/关于/测试/foo-加载页面,不显示foo

1 个回复
最合适的回答,由SO网友:Milo 整理而成

如果是子页面,则必须更新pagename 要反映父/子路径,请执行以下操作:

add_rewrite_rule(\'about/testing/([^/]+)?$\', \'index.php?pagename=about/testing&event_slug=$matches[1]\', \'top\' );

结束

相关推荐