是否可以在WP中重定向用户,而头/WP\\u重定向不在头()之前?
我有一个插件,允许用户管理他们在网站上创建的内容。。。例如,他们可以删除它或禁用注释
这是非常基本的,所以我只是使用一个GET请求。。ie。
?action=comments&status=disable
单击此按钮时,会执行操作,但页面上不会发生任何事情,url现在为:
www.domain.com/user_data?action=comments&status=disable
我要做的是在成功后将用户重定向回
www.domain.com/user_data
我尝试了wp\\u redirect()和header(),但它们给出了“headers已经发送警告”
当这段代码在我的插件中时,我不确定如何将其放在标题之前。
$query = $this->db->update(
//do something
);
if($query == 0)
{
$this->setMessage(\'error\', \'There was an error: \' . $this->db->print_error());
}
else
{
wp_redirect(site_url(\'/user_data/\'));
}
最合适的回答,由SO网友:Goodbytes 整理而成
这根本不可能,所以我想到了一个解决办法
public function redirect($url = false)
{
if(headers_sent())
{
$destination = ($url == false ? \'location.reload();\' : \'window.location.href="\' . $url . \'";\');
echo die(\'<script>\' . $destination . \'</script>\');
}
else
{
$destination = ($url == false ? $_SERVER[\'REQUEST_URI\'] : $url);
header(\'Location: \' . $destination);
die();
}
}