如何一次保存一个帖子的多个自定义域?

时间:2012-08-30 作者:Poulomi Nag

我想一次性为一篇自定义文章保存多个自定义字段。类似于get\\u post\\u custom()的内容,但这次我需要设置它。

1 个回复
SO网友:Chip Bennett

自定义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\' );

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register