[英]Check if WordPress password protect cookie exists
使用WordPress,如果您使用的是受密码保护的页面,则当用户使用成功的密码时,会生成一个如下所示的cookie:
wp-postpass_299da1fd9cb967a93782c5397fa3a35e
无论如何,PHP中是否有做此cookie是否存在的检查?
即使只是检查是否存在以wp-postpass_
开头的cookie?
我运行var_dump($_COOKIE)
时$ _COOKIE的内容:
array(9) {
["wordpress_test_cookie"] => string(15)
"WP Cookie check"
["wp-postpass_299da1fd9cb967a93782c5397fa3a35e"] => string(34)
"$P$BXtsZ0i1qom3bqiFk4b9GeG8l9dFVG."
}
if(isset($_COOKIE)){
foreach($_COOKIE as $key=>$val){
if(strpos($key,'wp-postpass_') === false) {
//not found
}else{
//found
}
}
}
我发现了比WordPress Developer Docs上可接受的答案更优雅的解决方案,以查看Cookie是否存在:
if ( isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) ) {
//custom code
}
同样,如果要检查cookie是否不存在:
if ( ! isset( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] ) ) {
//custom code
}
对于可能没有密码保护的页面,此代码很有用,因为它们是存档页面或其他内容,但其中包含的内容可能受到保护(例如帖子)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.