Intereting Posts
Создать запись с user_register не создает заголовок Изменение порядка сообщений после выполнения запроса Не разрешать доступ к wp-admin, но разрешить выполнение админовских запросов на интерфейсе? Ограничить количество страниц, созданных пейджингом как я могу редактировать flexslider в woocommerce. Правильный подход к перемещению полного сайта из одного домена в другой И сохранение виджетов Какой плагин следует использовать для бронирования событий и получения платежей? Оптимальный способ перенаправления домашней страницы в архив категорий? Можно ли удалить изображение из галереи, не удаляя его из медиа-библиотеки? Получение списка настраиваемого типа сообщений в виджетах без использования WP_Query? Изменение некоторых языков в странице администратора просмотра ревизии revision.php Пользовательский тип сообщения неожиданно исчез из админа изображение в RSS-ленте Должен ли я использовать spl_autoload_register () в моем плагине? Подкаталог Multisite hide

Пользовательское поле не обновляется, когда значение пустое

Я добавил несколько пользовательских полей в загрузчик изображений WordPress с помощью hooks attachment_fields_to_edit и attachment_fields_to_save . Все работает очень хорошо, за исключением случаев, когда пользователь удаляет поле. Например, поле, используемое, чтобы сказать «Масляная живопись», и пользователь стирал его, желая, чтобы поле было пустым, но поле все еще говорит «Масляная живопись». Однако изменение текста на что-то другое отлично работает. Есть идеи, почему это происходит? заранее спасибо

Вот мой код:

 // Add custom fields to the media uploader function wpf_fields_edit( $form_fields, $post ) { $post->post_type == 'attachment'; $form_fields[ 'wpf_g_medium' ] = array( 'label' => __( 'Medium' ), 'input' => 'text', 'value' => get_post_meta( $post->ID, '_wpf_g_medium', true ) ); $form_fields[ 'wpf_g_medium' ][ 'label' ] = __( 'Medium' ); $form_fields[ 'wpf_g_medium' ][ 'input' ] = 'text'; $form_fields[ 'wpf_g_medium' ][ 'value' ] = get_post_meta( $post->ID, '_wpf_g_medium', true ); // A couple more fields are added here, using the same code return $form_fields; } add_filter( 'attachment_fields_to_edit', 'wpf_fields_edit', NULL, 2 ); // Save the fields' data function wpf_fields_save( $post, $attachment ) { $fields = array('wpf_g_medium', 'wpf_g_dimen', 'wpf_g_collabs'); foreach( $fields as $field ) { $key = '_' . $field; if( isset( $attachment[ $field ] ) ) { if( trim( $attachment[ $field ] ) == '' ) $post[ 'errors' ][ $field ][ 'errors' ][] = __( 'Error! Something went wrong.' ); else update_post_meta( $post[ 'ID' ], $key, $attachment[ $field ] ); } } return $post; } add_filter( 'attachment_fields_to_save', 'wpf_fields_save', NULL, 2 ); // Print the values, called in attachment.php function get_artwork_fields_info() { global $post; $fields = array('wpf_g_medium', 'wpf_g_dimen', 'wpf_g_collabs'); $title = $post->post_title; if( $fields ) { echo '<ul id="artwork-meta"><li><em>' . $title . '</em></li>'; foreach ( $fields as $field ) { $key = '_' . $field; $meta = get_post_meta( $post->ID, $key, true ); if ( $meta ) { echo '<li>'; echo $meta; echo '</li>'; } } echo '</ul>'; } } 

Solutions Collecting From Web of "Пользовательское поле не обновляется, когда значение пустое"

Вы проверяете, пусто ли поле. Попробуйте обновить его, если его пустые

  if( trim( $attachment[ $field ] ) == '' ) $post[ 'errors' ][ $field ][ 'errors' ][] = __( 'Error! Something went wrong.' ); else update_post_meta( $post[ 'ID' ], $key, $attachment[ $field ] ); 

Пытаться

 if( isset( $attachment[ $field ] ) ) { if( trim( $attachment[ $field ] ) == '' ) $post[ 'errors' ][ $field ][ 'errors' ][] = __( 'Error! Something went wrong.' ); endif; update_post_meta( $post[ 'ID' ], $key, $attachment[ $field ] ); }