Intereting Posts
dbDelta не создает таблицы с составными ключами Веб-сайт, показывающий случайный код, например, текст в сообщении после вставки из MS Word Удалить категорию slug из ссылки использование pre_get_posts для исключения Добавить возможности в пользовательский тип сообщения после его создания Как вернуть результаты get_posts () в явно определенном порядке Ошибка пользовательской почты типа 404 на «стандартных» или «числовых» константах Не удается найти, где изменить <html> attrbitutes Форматирование фрагментов кода на бесплатной учетной записи WordPress.com? Внедрить контент-nosidebar.php / content-leftsidebar.php Экспорт данных как CSV в конец с соответствующими HTTP-заголовками Несколько категорий сообщений – одиночная постоянная ссылка Использование динамических условий в фильтре 'posts_where' Ошибка «Невозможно создать новое изображение» в редакторе изображений в WordPress Как получить Facebook, чтобы увидеть, как YouTube / Blip вставляются при совместном использовании ссылки?

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

Я добавил несколько пользовательских полей в загрузчик изображений 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 ] ); }