繁体   English   中英

检查WordPress密码保护cookie是否存在

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM