как сохранить несколько настраиваемых полей для публикации за один раз?

Я хочу сохранить несколько настраиваемых полей для настраиваемого сообщения за один раз. Что-то вроде get_post_custom (), за исключением того, что мне нужно установить его на этот раз.

Пользовательские метаданные сообщения обычно обновляются в базе данных через функцию обратного вызова, подключенную к save_post . (Другие: draft_post , publish_post , future_post .)

Метаданные настраиваемых сообщений являются частью данных $_POST отправленных на отправку для экрана редактирования сообщений, поэтому просто ищите их там, дезинфицируйте их и затем обновляйте в базе данных.

Я пропускаю такие вещи, как nonce-проверка и дезинфекция данных $_POST . Вы захотите включить их в свой обратный вызов по мере необходимости.

Например:

 function wpse63622_save_custom_post_metadata() { // Globalize $post global $post; // Find custom post meta data in $_POST // DON'T FORGET TO SANITIZE $custom_post_meta_1 = ( isset( $_POST['_custom_meta_key_1'] ) ? $_POST['_custom_meta_key_1'] : false ); $custom_post_meta_2 = ( isset( $_POST['_custom_meta_key_2'] ) ? $_POST['_custom_meta_key_2'] : false ); $custom_post_meta_3 = ( isset( $_POST['_custom_meta_key_3'] ) ? $_POST['_custom_meta_key_3'] : false ); // Update the database if ( $custom_post_meta_1 ) { update_post_meta( $post->ID, '_custom_meta_key_1', $custom_post_meta_1 ); } if ( $custom_post_meta_2 ) { update_post_meta( $post->ID, '_custom_meta_key_2', $custom_post_meta_2 ); } if ( $custom_post_meta_3 ) { update_post_meta( $post->ID, '_custom_meta_key_3', $custom_post_meta_3 ); } } add_action( 'save_post', 'wpse63622_save_custom_post_metadata' ); add_action( 'publish_post', 'wpse63622_save_custom_post_metadata' );