WordPress REWRITE_RULES_ARRAY规则工作不正常

时间:2016-09-20 作者:Amit Chauhan

我想用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;
    } 

1 个回复
最合适的回答,由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中添加规则数组,但目前它不起作用-只有一个规则起作用-其他规则不起作用,谢谢

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?