Wordpress URL重写不工作/注册

时间:2012-08-14 14:55:41

标签: wordpress-plugin wordpress

我一直试图绕过Wordpress网址重写,但我没有运气。

我想做什么:

我构建了一个自定义插件,用户可以使用各种选项构建产品。这些选项共同构建了一个代码,该代码指的是客户构建的独特产品。

代码可能类似于140-3-WPA-ABC-2.

该插件将出现在一个专用页面上:

http://wordpress-site/configurator/

我希望拥有prexisiting代码的客户能够将其输入到这样的网址中:

http://wordpress-site/configurator/140-3-WPA-ABC-2/

然后,插件获取变量,并使用它来构建正确的产品。

问题

它应该相当简单但我无法使用Wordpress URL重写规则获得任何工作,我甚至无法获得任何看似注册为Wordpress查询变量的内容。

我一直在主插件初始化代码中尝试以下内容:

add_filter( 'query_vars', 'conf_query_vars' );
add_action( 'init', 'cong_rewrites' );

function conf_query_vars($query_vars){
    $query_vars[] = 'product_code';
    return $query_vars;
}

function conf_rewrites(){
    add_rewrite_rule(
        'configurator/([^/]+)/?$',
        'index.php?product_code=$matches[1]',
        'top'
    );
}

如果我然后尝试打开http://wordpress-site/configurator/140-3-WPA-ABC-2/,我会收到页面未找到错误。回显query_vars似乎表明没有创建变量'product_code'。

ps我试过刷新重写缓存。向Wordpress.stackexchange.com交叉发布道歉 - 但这里的编程问题似乎更好吗?

1 个答案:

答案 0 :(得分:1)

试试这个,我遇到了同样的问题。

add_action('init', function() {
    add_rewrite_endpoint('sponsor', EP_ALL);
});

add_filter('request', function($args) {
    print_r($args);
    return $args;
});

我认为你应该只集成add_rewrite_endpoint函数。