以下问题:我在php中检查插件页面的一个条件,如果它是假的,我想重定向到另一个页面。
对于PHP,它只是:
header('Refresh: 10; URL=http://yoursite.com/page.php');如果你想在10秒后重定向。但在Wordpress中,将出现“已发送的标题”错误。
它的wordpress函数是:
exit( wp_redirect( admin_url( 'admin.php?page=your_page' ) ) );但是这个函数没有时间参数。
我知道如何使用javascript重定向,但我更愿意使用php/wordpress函数进行重定向。有办法这样做吗?
发布于 2014-09-11 14:04:00
您必须能够以某种方式修改文档的<head>部分,并添加以下元标记:
<meta http-equiv="refresh" content="10; URL=http://yoursite.com/page.php">这将是不同的,取决于您的模板的结构。
修改wordpress中的head部分(不使用模板)的一般解决方案是添加一个头操作:
<?php
add_action('wp_head', 'some_function');
function some_function() {
if($someCondition) { ?>
<meta http-equiv="refresh" content="10; URL=http://yoursite.com/page.php"> <?php
}
}发布于 2014-09-11 14:02:49
php代码是服务器端,它被处理,然后传递给客户端。
简单的解决办法:
使用特殊的标题并输出普通的html重定向标头。
发布于 2014-09-12 06:30:25
好的,对于这个问题,似乎没有简单的PHP解决方案,所以我创建了一个javascript解决方案。似乎是处理重定向的最简单方法:
if($my_condition == false){ ?>
<script type="text/javascript">
$(document).ready(function() {
var redirection_link=<?php echo json_encode(admin_url( 'admin.php?page=my_plugins_settings_page' )); ?>;
alert('Please check your Settings first!');
window.location.replace(redirection_link);
});
</script>
<?php
}https://stackoverflow.com/questions/25789377
复制相似问题