我正在为字典开发简单的插件。这个插件在填写新词典的表单字段后做:
- 获取字段的值;
- 激活$wpdb;
- 将数据插入数据库;
- 通过"标题位置"重定向到插件的主页。
第四步不起作用。我收到以下警告:
警告:无法修改标头信息 - 标头已由 .../public_html/wp-include/formatting.php:5652 在第 73 行的 .../public_html/wp-content/plugins/lp-dictionaries/lp-dictionaries.php 中发送。
我在绝对新的 Worpdress 上测试了我的插件,具有标准主题,没有任何其他插件。没有空行或符号和自定义函数。
如何使重定向工作?
发送标头后无法重定向。您需要在之前重定向。
这取决于您在插件中进行重定向的位置。建议使用template_redirect钩。问题是您在发送标头后使用钩子调用。
function webearth_redirect() {
wp_redirect( esc_url( home_url( '/' ) ) );
exit();
}
add_action( 'template_redirect', 'webearth_redirect' );
例如,如果您在简码内,则不能在服务器端使用重定向。你必须使用Javascript。在页面底部添加:
<script>window.location.href = "http://www.YourSite.com";</script>
-> 点击模拟
<script>location.replace("https://www.YourSite.com");</script>
-> "替换"当前页面的重定向。因此,您无法返回该页面。
请使用 {window.location.href},如下所示:
echo ("<script LANGUAGE='JavaScript'>
window.alert('Succesfully Updated');
window.location.href='http://someplace.com';
</script>");