WP-запрос работает для административных ролей, но не для других ролей - PullRequest
0 голосов
/ 14 июня 2019

Это работает только для администраторов - при использовании без прав администратора возвращает в основном последнее сообщение, добавленное для этого типа сообщений:

$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 операторов НЕ одинаков. Как администратор, результаты будут такими, как ожидалось - возвращается ОДИНОЧНАЯ запись 'event_ticket', содержащая метаданные '_token', соответствующие параметру строки запроса 'token'. Для администратора, не являющегося администратором, результаты таковы, что возвращается ПОСЛЕДНЯЯ запись 'event_type'.

Это связано с ограничениями или общими разрешениями WP в отношении функции meta_query или у меня что-то не так в аргументах meta_query?

1 Ответ

1 голос
/ 14 июня 2019

Я думаю, вам нужно указать роли пользователя, используя следующий код:

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

Возьмите роль из приведенного выше запроса и вставьте ее в свой код:

эта строка -> 'role' => array ('editor', 'administrator'),

проверь, работает ли он на ... упомяни свои роли в фигурных скобках ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...