2

投稿の追加またはページの追加に追加のフィールドを追加しようとしています。そのフィールドの値を、データベースの wp_posts テーブルに追加された手動で追加された列に挿入します。

カスタム フィールド テンプレートを使用できることはわかっていますが、問題は、これらのカスタム フィールドが wp_post ではなく wp_postmeta に値を挿入することであり、同じテーブル内の単一の投稿にすべてが必要です。

これを行う方法はありますか?

4

1 に答える 1

2

フィールドを手動で wp_posts テーブルに追加している場合は、いくつかのフックを使用してフィールドを投稿ページに追加し、保存するだけです。

// Function to register the meta box
function add_meta_boxes_callback( $post_type, $post ) {
    add_meta_box( 'my_field', 'My Field', 'output_my_meta_box', 'post' );
}
add_action( 'add_meta_boxes', 'add_meta_boxes_callback', 10, 2 );

// Function to actually output the meta box
function output_my_meta_box( $post ) {
    echo '<input type="text" name="my_field" value="' . $post->my_field . '" />';
}

// Function to save the field to the DB
function wp_insert_post_data_filter( $data, $postarr ) {
    $data['my_field'] = $_POST['my_field'];
    return $data;
}
add_filter( 'wp_insert_post_data', 'wp_insert_post_data_filter', 10, 2 );
于 2012-04-25T15:26:44.757 に答える