尝试使用此代码,
//Metabox Hook
add_action(\'add_meta_boxes\',\'stars_meta_box\');
//Metabox Init
function stars_meta_box(){
add_meta_box(\'first_name_meta_box\',
\'First Name\',\'first_name_meta_box_html\',\'spark_stars\',\'normal\',\'default\'););
}
//Metabox Html
function first_name_meta_box_html($post){
wp_nonce_field(\'first_name\',\'first_name_meta_box_nonce\');
$value = get_post_meta( $post->ID, \'first_name_meta_box_key\', true );
echo \'<label>First Name: </label> <input type="text" name="fname" value="\' . esc_attr($value) . \'"/>\';
}
//Save Hook
add_action( \'save_post\', \'my_save_meta_box\' );
//Save Metabox Value
function my_save_meta_box($post_id){
//you might want this or not
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) {
return;
}
if ( isset($_POST[\'first_name_meta_box_nonce\']) && ! wp_verify_nonce( $_POST[\'first_name_meta_box_nonce\'], \'first_name\' ) ) {
return;
}
if(!isset($_POST["fname"])){
return;
}
update_post_meta( $post_id, "first_name_meta_box_key", sanitize_text_field($_POST["fname"]));
}
在save函数中,我添加了两个检查,第一个是检查是否是“自动保存”,保存草稿时会触发该检查,如果要保存字段的值,即使是在“自动保存”上,也要删除该块。
然后,我检查“nonce”是否有效。
然后我检查字段是否为空。
最后,如果一切正常,我保存值,您可以添加其他内容或更改逻辑,但这些是需要检查的一些基本内容。
Parameters
您可以看到,我在函数中使用了参数,而不是全局“Post”对象。
Data sanitization
我还添加了一些函数来清理数据,对save函数的清理应该足够了,但是太简单了,我还转义了meta-box生成器函数中的值。
我想就是这样,如果你有任何问题,尽管问。