Intereting Posts
ненужный запрос вызова для js и css после вызова wp_dequeue_script Как ограничить функциональность в одной версии плагина? Использование jQuery. После цикла внутри WordPress добавляет вторую обратную косую черту, когда я использую addlashes Удаление ярлыка «WordPress» из строки заголовка Использование Default WordPress Custom Header Image Crop Feature в Post Type / MetaBox Пусть пользователь меняет сообщения на страницу Версия 3.04 или 3.5? Если показанное изображение не существует, покажите содержимое сообщения Разбиение на страницы для пользовательского магазина петли woocommerce WordPress Backend Fine, All Themes Вернуть пустую страницу? как получить постоянную ссылку с помощью sql Включены ли стили, включенные в таблицу стилей, с помощью add_editor_style, загруженной в интерфейс? Использование короткого кода аудио для .mp3 URL-адресов с строкой запроса Подключите другой БД и извлеките записи из некоторых таблиц

update_user_meta добавить значение сверху в существующее значение

Я работаю над плагином, который позволит людям любимым авторам на сайте WP.

Когда вы нажмете кнопку «Избранное» этого автора, она отправит идентификатор автора ниже функции и сохранит это значение в БД.

Ниже приведен код, который я сохраняю значение для FAV_AUTHORS_META_KEY в таблице wp_usermeta .

 $user_id = fav_authors_get_user_id(); $fav_author_id = 2; update_user_meta( $user_id, FAV_AUTHORS_META_KEY, $fav_author_id ); 

Если у меня есть идентификатор автора 2 , он сохранит это в БД. Однако, когда я отправляю другой идентификатор автора, update_user_meta переопределяет существующее значение вместо добавления нового значения.

Как заставить его сохранить существующее значение и добавить новое значение вверху?

Solutions Collecting From Web of "update_user_meta добавить значение сверху в существующее значение"

Нет встроенных функций для добавления метазначений, которые вам нужно будет сделать вручную. Если вы планируете добавлять несколько значений, я бы предложил сохранить его как массив, но он будет сериализовать его в базе данных, что затруднит запуск WP_Meta_Query .

 $user_id = fav_authors_get_user_id(); $fav_author_id = 2; $author_list = get_user_meta( $user_id, FAV_AUTHORS_META_KEY, true ); if( empty( $author_list ) ) { // There was no meta_value, set an array. update_user_meta( $user_id, FAV_AUTHORS_META_KEY, array( $fav_author_id ) ); } else { $author_arr = ( is_array( $author_list ) ) ? $author_list : array( $author_list ); // Added in case current value is not an array already. $author_arr[] = $fav_author_id; update_user_meta( $user_id, FAV_AUTHORS_META_KEY, $author_arr ); } 

Я предполагаю, что у вас в настоящее время нет массива, поэтому я добавляю inline-conditional внутри оператора else для преобразования любых значений в массив. Обратите внимание, что вы должны передать true get_user_meta() чтобы он не инициализировал наш массив.