Intereting Posts
Оптимизация скорости на сайте WP, Удаление строк запроса из статических ресурсов Где добавить смещение? Есть ли способ сделать несколько заказов на нескольких meta_query? WP_Query только ОДИН пост, не будет работать Используйте имя категории вместо категории slug в permalinks Показать сообщение администратора при перенаправлении Меню не видно по внешнему виду предотвратить публикацию в моем плагине нескольких категорий Удаление коротких кодов с детской темы Выполнить функцию PHP внутри области администратора Как добавить идентификаторы элементов текущего, родительского и предкового объектов в body_class ()? Требуется 2 пользовательских шаблона, основанных на категории, для одного настраиваемого типа сообщений Позвольте пользователям регистрироваться и показывать им только область (без плагина) Файл wordpress css Создание next_posts_link (); возвращение сообщений по месяцам

комментарий meta_query для ключей, которые еще не установлены

Мне нужна помощь по запросу!

Я пытаюсь создать meta_query (для get_comments ) для ключей, которые еще не установлены.

У меня есть код, который позволяет модераторам добавлять индивидуальный мета-ключ к отдельным комментариям. Установите флажок, а мета-ключ настроен на shadow , отмените его, чтобы мета-ключ был установлен в пустую строку.

Это означает, что для комментария есть три возможных состояния. Он может иметь мета-ключ «shadow», он может содержать пустую строку и мета-ключ, или мета-ключ не может быть установлен.

То, что я хотел бы сделать, – это запросить все комментарии, которые либо не имеют этого мета-ключа, либо имеют мета-ключ, который НЕ тень. Достаточно легко выбрать все комментарии, у которых мета-ключ не равен shadow но я не нашел прочь, чтобы также выбрать комментарии, у которых нет набора мета-ключей.

Это код, который я использую, но он не работает. Он выбирает каждый комментарий, который имеет набор мета-ключей, независимо от того, для чего он установлен.

  $comments = get_comments( array( 'meta_query' => array( 'relation' => 'OR', array( // Select comments that don't have the 'shadow' p3_comment_status meta 'key' => 'p3_comment_status', 'value' => 'shadow', 'compare' => '!=' ), array( // Select comments that don't have the p3_comment_status set 'key' => 'p3_comment_status', 'compare' => 'NOT EXISTS' ) ) ) ); 

Любая помощь была бы appricieated.

благодаря

ОБНОВЛЕНИЕ: для записи это код, который в конечном итоге работал для меня:

  $comments = get_comments( array( 'order' => 'ASC', 'post_id' => get_the_ID(), 'meta_query' => array( 'relation' => 'OR', array( // Select comments that don't have the 'shadow' p3_comment_status meta 'key' => 'p3_comment_status', 'value' => 'shadow', 'compare' => '!=' ), array( // Select comments that don't have the p3_comment_status set 'key' => 'p3_comment_status', 'compare' => 'NOT EXISTS', 'value' => '' ) ) ) ); 

Ключ должен был установить 'post_id' => get_the_ID()

Solutions Collecting From Web of "комментарий meta_query для ключей, которые еще не установлены"

Вы не нуждаетесь в трех состояниях. Логически, вы «установили» и «не заданы». Не усложняйте вещи. Когда вы установите флажок, добавьте p3_comment_status . Когда вы снимите флажок, удалите (удалить) ключ. Если вы это сделаете, все, что вам нужно сделать, это использовать EXISTS / NOT EXISTS . Это делает гораздо более простой и быстрый запрос в качестве бонуса.

Вы не разместили код, который сохраняет ваши данные, поэтому подробный ответ невозможен, но delete_comment_meta – это то, что вам нужно.

Для записи это код, который в конечном итоге работал для меня:

  $comments = get_comments( array( 'order' => 'ASC', 'post_id' => get_the_ID(), 'meta_query' => array( 'relation' => 'OR', array( // Select comments that don't have the 'shadow' p3_comment_status meta 'key' => 'p3_comment_status', 'value' => 'shadow', 'compare' => '!=' ), array( // Select comments that don't have the p3_comment_status set 'key' => 'p3_comment_status', 'compare' => 'NOT EXISTS', 'value' => '' ) ) ) ); 

Ключ должен был установить 'post_id' => get_the_ID()