自定义post元数据通常通过连接到的回调函数在数据库中更新save_post
. (其他:draft_post
, publish_post
, future_post
.)
自定义post元数据是$_POST
提交时为编辑帖子屏幕发送的数据,因此只需在那里查找它们,清理它们,然后在数据库中更新它们。
我忽略了诸如临时检查和消毒之类的事情$_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\' );