这仅适用于ADMINS-与非管理员一起使用时,基本上会返回为此帖子类型添加的最后一个帖子:
$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);
更清晰:
这2条语句的输出不同。作为管理员用户,结果与预期的一样-返回包含与查询字符串参数“ token”匹配的元数据“ _token”的单个“ event_ticket”帖子。作为非管理员,结果将返回LAST'event_type'帖子。
这与关于meta_query函数的上限或一般WP权限有关吗,或者我在meta_query args中有问题吗?
答案 0 :(得分:1)
我认为您需要使用以下代码指定用户角色:
$editor_query = new WP_User_Query(
array(
'role' => array( 'editor', 'administrator' ),
'meta_key' => 'featured',
'meta_value' => 'yes',
'number' => 5
)
);
从上面的查询中获取角色,将其粘贴到您的代码中:
这行->'role'=> array('editor','administrator'),
检查它是否有效。.在括号中提及您的角色。