我知道有很多与此相关的话题,但是我找不到解决问题的办法。
我的问题是尽管我清除了设置中的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;
}
我也在通过“永久链接设置”页面刷新永久链接,但没有任何反应。 那是什么问题,我在做什么错了?
谢谢