Wordpress add_rewrite_rule不起作用-找不到404错误

时间:2018-08-11 19:04:27

标签: php wordpress

我知道有很多与此相关的话题,但是我找不到解决问题的办法。

我的问题是尽管我清除了设置中的premalink更改,但Wordpress add_rewrite_rule函数无法正常工作。

我写了一个wordpres插件,并用这个插件创建了两个特定页面。第一页正在捕获发帖请求并重定向到第二页。

永久链接成功运行了大约2个月,但现在失败了,始终显示 404未找到页面。

(2天前,我安装了一些插件,但在发生此问题后,我将其删除,但无法解决问题)

这是我的代码

add_action('init', 'sonuc_sayfasi_rewrite_rule');
function sonuc_sayfasi_rewrite_rule(){
    add_rewrite_tag('%sonuc_sayfasi%', '([^&]+)', 'sonuc_sayfasi=');
    add_rewrite_rule('^payment/sonuc?$','index.php?sonuc_sayfasi=1&post_type=custom_post_type','top');
}

add_action('init', 'pos_sayfasi_rewrite_rule');
function pos_sayfasi_rewrite_rule(){
    add_rewrite_tag('%pos_sayfasi%', '([^&]+)', 'pos_sayfasi=');
    add_rewrite_rule('^payment/Result?$','index.php?pos_sayfasi=1&post_type=custom_post_type','top');
}

这是首页的代码。

//pos sayfasi
add_filter('template_redirect', 'bagis_yakala_func');
function bagis_yakala_func(){

if(get_query_var('pos_sayfasi')!=1 )
    return;
if(!isset($_POST) || !isset( $_POST['ResCode']))
{
    wp_redirect( 'https://example.org/payment/sonuc/' ); 
    exit();
}

//some code

}

get_query_var('pos_sayfasi')始终为空。

当我检查 wp_options 表中的 rewrite_rules 值时,找不到我的重写路由。

我还删除了 add_rewrite_tag()方法,并添加了 query_vars 过滤器,如底部代码所示,但结果相同。

add_filter('query_vars','sonuc_sayfasi_set_query_var');
function sonuc_sayfasi_set_query_var($vars) {
    array_push($vars, 'sonuc_sayfasi','pos_sayfasi');
    return $vars;
}

我也在通过“永久链接设置”页面刷新永久链接,但没有任何反应。 那是什么问题,我在做什么错了?

谢谢

0 个答案:

没有答案