WP 查询适用于管理员角色,但不适用于其他角色



这仅适用于管理员 - 当与非管理员一起使用时,它基本上返回为此帖子类型添加的最后一个帖子:

$ticket_args = array(
'post_type' => 'event_ticket',
'post_status' => array('publish', 'pending'),
'posts_per_page' => 1,
'meta_query' => array(
array(
'key' => '_token',
'value' => $_GET['token'],
),
),
);
$tickets = get_posts($ticket_args);

这适用于所有角色:

$ticket_args = array(
'post_type' => 'event_ticket',
'post_status' => array('publish', 'pending'),
'posts_per_page' => 1,
'meta_key' => '_token',
'meta_value' => $_GET['token']
);
$tickets = get_posts($ticket_args);

更清晰:

这两个语句的输出是不一样的。作为管理员用户,结果符合预期 - 返回包含与"token"的查询字符串参数匹配的元数据"_token"的单个"event_ticket"帖子。作为非管理员,结果是返回最后一个"event_type"帖子。

这是否与大写或与meta_query函数有关的一般 WP 权限有关,或者我在meta_query参数中是否有问题?

我认为您需要使用以下代码指定用户角色:

$editor_query = new WP_User_Query(
array(
'role'              =>  array( 'editor', 'administrator' ),
'meta_key'        => 'featured',
'meta_value'      =>    'yes',
'number'            =>  5
)
);

从上面的查询中获取角色,将其粘贴到您的代码中:

这一行 ->'角色' =>数组( '编辑器', '管理员' ),

检查它是否适用于不..在大括号中提及您的角色。

最新更新