所有代码都是为了复制流程,而不是给出实际的代码。您必须弄清楚您的流程如何满足此场景。我对每一行都发表了评论,请查看内联评论以获得正确的理解。
步骤#1
首先,代码的第一部分生成一个自定义元框,因此使用该部分首先生成元框:
<?php
//making the meta box (Note: meta box != custom meta field)
function wpse_add_custom_meta_box_2() {
add_meta_box(
\'custom_meta_box-2\', // $id
\'Dauer2\', // $title
\'show_custom_meta_box_2\', // $callback
\'project\', // $page
\'normal\', // $context
\'high\' // $priority
);
}
add_action(\'add_meta_boxes\', \'wpse_add_custom_meta_box_2\');
?>
因此,您的元框现在已准备就绪。现在,您必须创建一些表单字段来获取用户数据,为此,我们使用
$callback
我们刚才声明的函数:
<?php
//showing custom form fields
function show_custom_meta_box_2() {
global $post;
// Use nonce for verification to secure data sending
wp_nonce_field( basename( __FILE__ ), \'wpse_our_nonce\' );
?>
<!-- my custom value input -->
<input type="number" name="wpse_value" value="">
<?php
}
?>
步骤3在post保存上,两个字段将
post
价值观,现在我们必须把它们保存在我们想要保存它们的地方。
<?php
//now we are saving the data
function wpse_save_meta_fields( $post_id ) {
// verify nonce
if (!isset($_POST[\'wpse_our_nonce\']) || !wp_verify_nonce($_POST[\'wpse_our_nonce\'], basename(__FILE__)))
return \'nonce not verified\';
// check autosave
if ( wp_is_post_autosave( $post_id ) )
return \'autosave\';
//check post revision
if ( wp_is_post_revision( $post_id ) )
return \'revision\';
// check permissions
if ( \'project\' == $_POST[\'post_type\'] ) {
if ( ! current_user_can( \'edit_page\', $post_id ) )
return \'cannot edit page\';
} elseif ( ! current_user_can( \'edit_post\', $post_id ) ) {
return \'cannot edit post\';
}
//so our basic checking is done, now we can grab what we\'ve passed from our newly created form
$wpse_value = $_POST[\'wpse_value\'];
//simply we have to save the data now
global $wpdb;
$table = $wpdb->base_prefix . \'project_bids_mitglied\';
$wpdb->insert(
$table,
array(
\'col_post_id\' => $post_id, //as we are having it by default with this function
\'col_value\' => intval( $wpse_value ) //assuming we are passing numerical value
),
array(
\'%d\', //%s - string, %d - integer, %f - float
\'%d\', //%s - string, %d - integer, %f - float
)
);
}
add_action( \'save_post\', \'wpse_save_meta_fields\' );
add_action( \'new_to_publish\', \'wpse_save_meta_fields\' );
?>
由于您正在处理定制表,因此我们坚持
$wpdb 类来安全地存储必要的数据。
Please note, 这不是您需要的代码,这是您现在可以如何塑造您的路径的想法和过程。记住两件事:
show_custom_meta_box_2()
是HTML表单所在的区域,请将此部分视为简单的HTML表单,然后wpse_save_meta_fields()
连接到必要的操作,将在发布/保存/更新帖子时保存表单的数据。在这里进行适当的消毒和验证希望这能有所帮助。感谢@toschorecent chat. <;3.