我正在从头开始开发自定义主题,并创建一个自定义post类型,并在编辑自定义post类型时得到此警告。我还设计了两个输入字段的自定义元框,并在其中使用了nonce。能帮我移除这些警告吗?
以下是functions.php中定制的metabox代码
//Custom Metabox
function register_book_meta_box(){
add_meta_box('book_meta_box_id', 'Book Detail','design_book_meta_box','books','advanced','high');
}
add_action('add_meta_boxes','register_book_meta_box');
function design_book_meta_box($post){
wp_nonce_field(basename(__FILE__),'book_cpt_nonce')
?>
Author Name
Published Year
Published Year Must be range from 1455 - 2020
发布于 2020-10-13 12:49:47
阿里,正如注释中提到的,这里是我用来保存的方法。如您所见,它列出了分类字段,然后一次运行保存进程,而不是为每个字段设置逻辑。
function save_book_meta_data( $post_id ) {
if( !current_user_can( 'edit_post', $post_id ) ) {
return $post_id;
}
if( !isset( $_POST['book_cpt_nonce'] ) || !wp_verify_nonce( $_POST['book_cpt_nonce'], basename( __FILE__ ) ) ) {
return $post_id;
}
$ali_book_meta['book-author-key'] = esc_textarea( $_POST['book-author-key'] );
$ali_book_meta['book-year-key'] = esc_textarea( $_POST['book-year-key'] );
foreach( $ali_book_meta as $key => $value ) :
if( 'revision' === $post->post_type ) {
return;
}
if( get_post_meta( $post_id, $key, false ) ) {
update_post_meta( $post_id, $key, $value );
} else {
add_post_meta( $post_id, $key, $value);
}
if( !$value ) {
delete_post_meta( $post_id, $key );
}
endforeach;
}
add_action( 'save_post', 'save_book_meta_data', 1, 2 );
我不知道这是否解决了你的实际问题,但你可以试一试,看看会发生什么。
它确实确保只有具有编辑功能的用户才能进行更改并避免更新,因为它们不应该被更新,否则它们将不是修订,它们只是克隆。
https://wordpress.stackexchange.com/questions/376399
复制