Intereting Posts
Продолжайте получать уведомления об обновлениях, несмотря на то, что обновлять нечего WordPress и пользовательский PHP single SignOn Исключить старые события из WP_Query с датой, сохраненной в `meta_key` Как установить идентификатор родительского сообщения вложений в коде? Как я могу получить доступ к изображению объекта за пределами цикла? Shortcode для отображения всех пользовательских сообщений на одной странице WordPress meta_query и заказ по настраиваемому полю Почему мой пользовательский слайдер типа сообщений показывает только последний слайд? Как настроить разбиение на страницы для настраиваемого цикла на глобальном шаблоне (author.php, tag.php, archive.php?) Правильная структура для первого плагина WP? Что такое files.wordpress.com? Ограничить имена многосайтовых / сетевых сайтов до свойства пользователя Как отобразить 2 карты Google на 2 разных страницах? Как использовать кеш с simplepie Странный продукт по торговле woo

Обновить значение ассоциативного массива с помощью update_post_meta

Я пытаюсь изменить значение определенного ключа ассоциативного массива, который был сохранен в моей метатете сообщений. Так мой массив сохраняется в настраиваемом поле:

Array ( [0] => Array ( [321] => Zedity is an innovative content Editor to create posts or pages ) [1] => Array ( [310] => A shortcode that includes other posts ) ) 

Вот как я пытаюсь обновить значение ключа 321:

 global $post; $postid = $post->ID; $add_to_ID = $_POST['wpd_plugin_note_id']; $note = $_POST['wpd_plugin_note']; $existing_list = get_post_meta($postid, 'my_list_items', TRUE ); foreach ($existing_list as $key => $value) { $existing_list[$key][$add_to_ID] = $note; } update_post_meta($postid,'my_list_items',$existing_list); 

Он работает, но после обновления массив выглядит так, вместо того, чтобы обновлять значение ключа 321, пара ключей = значение добавляется 2 раза:

 Array ( [0] => Array ( [321] => my new value for 321 ) [1] => Array ( [310] => A shortcode that includes other posts [321] => my new value for 321 ) ) 

Может ли кто-нибудь сказать мне, что я делаю неправильно? благодаря

Это простой PHP (логика):

 foreach ($existing_list as $key => $value) if (isset($existing_list[$key][$add_to_ID])) $existing_list[$key][$add_to_ID] = $note; 

То, что вы делали ранее, не обновляло подэлемент с ключом 321 для каждого элемента, но устанавливало подэлемент с этим конкретным ключом для каждого элемента – по существу: обновление, где уже определено, определяет иначе.