Javascript Wordpress重新加载帖子/页面如果!_user_是否已登录(以及#锚不在URL中)
有一个我想在加载时进行测试的CPT。(因此,在单个cpt.php中工作。) 基本上,您希望加载(或重新加载?)包含#锚的页面,如果用户未登录,将显示调用操作覆盖。因此:Javascript Wordpress重新加载帖子/页面如果!_user_是否已登录(以及#锚不在URL中),javascript,php,wordpress,anchor,Javascript,Php,Wordpress,Anchor,有一个我想在加载时进行测试的CPT。(因此,在单个cpt.php中工作。) 基本上,您希望加载(或重新加载?)包含#锚的页面,如果用户未登录,将显示调用操作覆盖。因此: if (! is_user_logged_in() ) { header('Location: #anchor'); } 但也要检查URL中是否已经有锚定page#anchor。无论是从直接链接还是从上面都是用户登录的。(这也将防止上述代码无限次地尝试重新加载该页面,因为用户仍然没有登录。) 我发现了一些东西,但也遇到了
if (! is_user_logged_in() ) {
header('Location: #anchor');
}
但也要检查URL中是否已经有锚定page#anchor
。无论是从直接链接还是从上面都是用户登录的。(这也将防止上述代码无限次地尝试重新加载该页面,因为用户仍然没有登录。)
我发现了一些东西,但也遇到了一些注释(大多数都有几年了,所以不知道是否仍然是当前状态),PHP不太擅长检测客户端上存在的锚。我试过以下几件事
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'#anchor') == true) {
}
那么,运行这两个测试的最佳方法是什么?特别是如果一个必须在PHP中完成,另一个必须在。。。javascript??测试的顺序是否重要,因为这两个条件都为真(用户未登录,页面尚未显示锚定)会导致页面重新加载带有#锚定URL的页面。否则,锚定已经导致覆盖显示,或者用户登录并只看到一个正常页面 您考虑过使用查询字符串参数吗?我支持查询字符串建议。这不是url片段(#)的用途。url中的散列(#)用于标识文档中的特定位置,而不是将信息传递给服务器。这就是查询参数的用途。谢谢你们。不,我没有考虑使用查询字符串,因为a)只是看看这个(但现在我知道PHP不适合查看URL)和B)我正在处理内置于主题中的东西。但是,你今天的评论和新鲜的眼光让我看完了主题的源代码。找到它们重叠的地方称为。现在,我将直接调用覆盖,而不是测试锚定(这会告诉我覆盖是活动的)。一步到位,这样更干净。