我想用WooCommerce的方式为永久链接创建新规则。我检查了WooCommerce核心文件,发现WooCommerce正在使用此过滤器将规则保存到数据库中。我当前的url是http://amit.com/wcommerce/seller-login/?page=mpProfile. 我已转储var get\\u query\\u var(\'pagename\');在点击页面上,但点击url显示空白。我希望此url为http://amit.com/wcommerce/seller-login/mpProfile. 有人知道这部分吗?我已经被困在这三天左右了。
这是我的代码:
add_action( \'wp_loaded\',\'my_flush_rules\' );
add_filter( \'rewrite_rules_array\',\'my_insert_rewrite_rules\' );
add_filter( \'query_vars\',\'my_insert_query_vars\' );
function my_flush_rules() {
$rules = get_option( \'rewrite_rules\' );
if ( ! isset( $rules[\'(seller-login)/(.+)$\'] ) ) {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
}
function my_insert_rewrite_rules( $rules ) {
$newrules = array();
$newrules[\'(seller-login)/(\\d*)$\'] = \'index.php?pagename=$matches[1]\';
// var_dump($newrules);
return $newrules + $rules;
}
function my_insert_query_vars( $vars ) {
array_push($vars, \'pagename\');
return $vars;
}
最合适的回答,由SO网友:Amit Chauhan 整理而成
通过使用rewrite\\u rules\\u array filter 1,一切正常:-我想知道add\\u rewrite\\u url()和rewrite\\u rules\\u array filter之间的区别,我还想在rewrite\\u rules\\u array filter中添加规则数组,但目前它不起作用-只有一个规则起作用-其他规则不起作用,谢谢