WordPress - 将额外的列添加到wp_posts,并发布到它

时间:2012-04-24 19:56:55

标签: wordpress field

我正在尝试在“添加帖子”或“添加页面”中添加一个额外字段,我将该字段的值插入到数据库中wp_posts表中添加的手动添加列中。

我知道我可以使用自定义字段模板,但问题是这些自定义字段会将值插入到wp_postmeta而不是wp_post中,并且我需要在同一个表中单个帖子的所有内容。

知道怎么做吗?

1 个答案:

答案 0 :(得分: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 );