这仅适用于管理员 - 当与非管理员一起使用时,它基本上返回为此帖子类型添加的最后一个帖子:
$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
)
);
从上面的查询中获取角色,将其粘贴到您的代码中:
这一行 ->'角色' =>数组( '编辑器', '管理员' ),
检查它是否适用于不..在大括号中提及您的角色。