我的WP_Options数据库重写_规则不起作用

时间:2017-04-25 作者:Chris

在我的网站上,我有自己的自定义php文件,用于处理URL GET请求。例如,在mysite。com/?burger=做得好,它将查询我的数据库,并在相应的数据库字段中显示一个包含所有带有“做得好”的汉堡的页面。

我想做的是通过mysite访问它。连续5个小时后,都没有成功。

我尝试过插件,我尝试过重写htaccess,我尝试过拒绝htaccess的写入权限,在当前状态下,我正在使用takien的“重写”插件。

在插件之前,访问mysite。com/burger/WellDone只会显示未找到的页面。现在,在rewrite插件的(下面)中输入我的regex后,它会将我的regex添加到wp\\u options db rewrite\\u rules的开头,并在我导航到mysite时添加。com/burger/WellDone,它现在将我重定向到“mysite.com”的索引,而不是mysite。com/?汉堡=做得好。

这是我的regex和match:

^burger/([a-zA-Z0-9_/-/s]+)/?$
index.php?Burger=$matches[1]
如上所述,输入我的URL作为mysite。com/?burger=WellDone的表现与预期一样完美,但mysite。com/burger/WellDone只是循环回到主页。

Edit:

感谢Welcher,我将此代码添加到函数中。php,但仍重定向到索引:

function add_burger_query_vars_filter( $vars ){
  $vars[] = "burger";
  return $vars;
}
add_filter( \'query_vars\', \'add_burger_query_vars_filter\' );

function custom_rewrite() {
        $this_burger = get_query_var(\'burger\');
add_rewrite_rule(
    \'^burger/([a-zA-Z0-9_/-/s])/?$\',
    \'index.php?Burger=\'.$this_burger,           
    \'top\'
); //*/
}
add_action(\'init\', \'custom_rewrite\');

1 个回复
SO网友:Welcher

重写会将您带回带有Burger参数的主页,但url正在重写,因此您看不到它。

你应该能够用get_query_var(\'Burger\') 其中将包含$matches[1]

您可以阅读更多关于get_query_varcodex

$burger = get_query_var( \'Burger\');
// $burger will have the string "welldone" in it\'