我在Wordpress中对$ wp_rewrite对象提出了一个小问题......
我正在构建一个需要一些路由的插件,但不包含在Wordpress中。因此,我尝试使用non_wp_rules
对象中的$wp_rewrite
操作。
这是我的代码:
add_filter('generate_rewrite_rules', 'add_rewrites');
add_filter('wp_loaded', 'flush_rules');
function flush_rules()
{
$rules = get_option('rewrite_rules');
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
function add_rewrites()
{
global $wp_rewrite;
$rules = array(
'documentation/$' => 'fileToCall.php'
);
$wp_rewrite->non_wp_rules += $rules;
}
但我不明白......我的路线添加了任何问题(仅var_dump
$wp_rewrite
对我说一切都没问题),但似乎文件i& #39;我试图调用(fileToCall.php
)只包含一个回声(所以没有错误)在Firefox开发控制台中返回404错误。
有一天会有人遇到这个问题吗?我做错了吗?
感谢您的帮助。
答案 0 :(得分:0)
wp_rewrite test如果重定向地址是locale或external。在你的情况下它是外部的,所以你必须使用不同的功能。只需用这个替换你的第二个钩子:
add_action('init', 'add_rewrites');
function add_rewrites()
{
global $wp_rewrite;
$wp_rewrite->add_external_rule('documentation/$', 'fileToCall.php');
}