我一直试图绕过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交叉发布道歉 - 但这里的编程问题似乎更好吗?
答案 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函数。