我正在尝试使用wp_redirect()
在页面上成功提交注册表单后重定向用户。
它不工作,并显示以下错误:
警告:无法修改标题信息-标题已由/Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10中的/Applications/MAMP/htdocs/theme/wp-includes/plugable发送。php在线1178
我知道之前已经有输出了,这就是为什么它不起作用,但我不知道如何使它起作用。
注册表单由一个函数呈现,并由我的函数中的另一个函数提交。php。
if ( isset( $_POST[\'subscribe\'] ) ) {
// Submits the form and should then redirect
wp_redirect("/thank-you/");
exit;
}
然后,在我想要显示注册表单的地方使用这两个函数。
恐怕这不是最好的办法。我应该制定一些行动来做到这一点,但我不知道如何实现这一点。我找到的大多数教程直接在同一页上显示结果,不需要额外的重定向。也许这就是为什么他们使用函数中的函数。php
最合适的回答,由SO网友:Snowball 整理而成
找到了答案(via)
我没有使用这个函数,而是在“wp\\u loaded”中添加了一个操作,确保在发送任何头之前加载它。
<?php
add_action (\'wp_loaded\', \'my_custom_redirect\');
function my_custom_redirect() {
if ( isset( $_POST[\'subscribe\'] ) ) {
$redirect = \'http://example.com/redirect-example-url.html\';
wp_redirect($redirect);
exit;
}
}
?>