Intereting Posts
Как отслеживать всех пользователей, зарегистрированных на сайте? Использование register_activation_hook в классах опубликовать конкретные пункты меню по двадцать шестнадцати темам Зафиксировать короткий код? Как W3 Total Cache загружает изображения в таблицу стилей через CDN? Страницы верхнего уровня переадресовываются на главную страницу! Как удалить или заменить ссылку для входа для комментариев? Создание страницы галереи галереи для пользовательского типа сообщения, у которого уже есть страница архива сколько PHP-кодирования мне нужно знать, чтобы создать веб-блог, используя wordpress.org Woocommerce – удалить поле цены продажи с панели инструментов Запускать одноразовый скрипт, вызывающий функции плагина Невозможно отклонить комментарий WordPress Пользовательский тип сообщения – после отключения «Добавить новый», я не могу редактировать и удалять сообщение Использовать значение по умолчанию для wp_customizer в выводе theme_mod? Исключить сообщения на основе массива

Добавить сообщение мета-ключ и значение, только если оно не существует в сообщении

У меня есть пользовательское поле в продукте WooCommerce, и я вводил в него идентификатор другого продукта. При сохранении этого продукта я добавляю мета-поле к введенному продукту, создавая «ссылку» между ними. У меня это прекрасно работает, но проблема в том, что он добавляет его, даже если он уже существует.

function part_fits($post_id){ global $post; global $product; $current_diagram_id = get_the_ID(); if( have_rows('product_association') ): while( have_rows('product_association') ): the_row(); $single_part_id = get_sub_field('part'); add_post_meta($single_part_id, 'part_fits', $current_diagram_id); endwhile; endif; } 

Есть ли способ проверить, что этот точный ключ и значение уже существуют, и только добавить его, если это не так?

Solutions Collecting From Web of "Добавить сообщение мета-ключ и значение, только если оно не существует в сообщении"

Похоже, вам нужно использовать update_post_meta()

https://codex.wordpress.org/Function_Reference/update_post_meta

Источник: WP Codex

Функция update_post_meta () обновляет значение существующего мета-ключа (настраиваемого поля) для указанного сообщения.

Это можно использовать вместо функции add_post_meta (). Первое, что эта функция будет делать, это убедиться, что $ meta_key уже существует в $ post_id. Если это не так, вместо этого вызывается add_post_meta ($ post_id, $ meta_key, $ meta_value) и возвращается результат.

Возвращает meta_id, если мета не существует, в противном случае возвращает true при успешном выполнении и false при ошибке. Он также возвращает false, если представленное значение совпадает с значением, которое уже находится в базе данных.