如果这两个条件都失败:
if ($_SESSION['user']['role'] == "Admin") {
$sql = "SELECT * FROM posts";
} elseif ($_SESSION['user']['role'] == "Author") {
$user_id = $_SESSION['user']['id'];
$sql = "SELECT * FROM posts WHERE user_id=$user_id";
}
$result = mysqli_query($conn, $sql);
然后
$sql
变量未定义。如果您必须这样做,那么您可以检查它是否被设置并返回一个默认值。
if ($_SESSION['user']['role'] == "Admin") {
$sql = "SELECT * FROM posts";
} elseif ($_SESSION['user']['role'] == "Author") {
$user_id = $_SESSION['user']['id'];
$sql = "SELECT * FROM posts WHERE user_id=$user_id";
}
if(!isset($sql)) return false; //or [] if you want the type to stay an array.
$result = mysqli_query($conn, $sql);
或者类似的事情,取决于你的需要。
您还可以返回一个错误:
}else{
return new WP_Error( 'restricted', __( "Not an Admin or Author", "my_textdomain" ) );
}
https://codex.wordpress.org/Class_Reference/WP_Error
基本上是这个
$_SESSION['user']['role']
两者都不是
Admin
也不
Author
. 需要注意的一点是字符串匹配区分大小写。