1

我一直在努力解决 Wordpress URL 重写问题,但我没有运气。

我想做的事:

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

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

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

http://wordpress-site/configurator/

我希望具有预先存在代码的客户能够将其输入到 URL 中,如下所示:

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 - 但这里的编程问题似乎更好?

4

1 回答 1

1

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

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

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

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

于 2013-08-27T09:44:07.930 回答