我在Wordpress header.php
文件中有以下代码,如果他们未登录,则会将用户重定向到我的主页:
<?php if (!is_user_logged_in()) {
wp_redirect( 'http://mydomain.com/');
exit;
} ?>
但是,这也会阻止来自其他脚本的任何$.get()
调用来加载内容。所以我的问题是,有什么东西可以添加到上面的代码中来实现以下目的:
if user is not logged in but request is not $.get()
redirect them to home page
这样我可以重定向未登录的用户,但仍然允许$ .get()ajax调用这些页面。
由于
答案 0 :(得分:0)
尝试以下功能
if (!function_exists('isAjax')) {
function isAjax()
{
return (bool)(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strcasecmp($_SERVER['HTTP_X_REQUESTED_WITH'], 'XMLHttpRequest') === 0);
}
}
答案 1 :(得分:0)
如果您将$.get
换成$.ajax
,则可以向您的脚本发送请求标头并对其进行测试。
$.ajax({
url: "index.php",
headers: {"X-Origin-Header": "xhr"}
});
然后在你的PHP中
$headers = apache_request_headers();
if ($headers["X-Origin-Header"] != "xhr" && !is_user_logged_in()) {
wp_redirect( 'http://mydomain.com/');
exit;
}