首页 > 解决方案 > 找到 2 个具有非唯一 ID (#_ajax_nonce) 和 (#_wpnonce) 的元素

问题描述

我正在从头开始开发自定义主题并创建自定义帖子类型并在编辑自定义帖子类型时收到此警告。我还设计了带有两个输入字段并在其中使用 nonce 的自定义 Meta 框。任何帮助消除这些警告? 在此处输入图像描述

//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')
    ?>
        <div>
            <label for="book-author">Author Name&nbsp;&nbsp;</label>
            <input type="text" name="book-author" placeholder="Author Name" value="<?php echo get_post_meta( $post->ID, 'book-author-key', true );?>">
        </div>
        <div>
            <label for="year">Published Year</label>
            <input type="number" id="year" name="year" min="1455" max="2020" value="<?php echo get_post_meta( $post->ID, 'book-year-key', true );?>">
            <span id="errorMsg" style="display:none;">Published Year Must be range from 1455 - 2020</span>
        </div>

    <?php
}
function save_book_meta_data($post_id)
{
    if(!isset($_POST['book_cpt_nonce']) || !wp_verify_nonce($_POST['book_cpt_nonce'],basename(__FILE__))){
        return $post_id;
    }
    if (array_key_exists('book-author', $_POST)) {
        update_post_meta( $post_id,'book-author-key', $_POST['book-author']
        );
    }
    if (array_key_exists('year', $_POST)) {
        update_post_meta( $post_id,'book-year-key', $_POST['year']
        );
    }
}
add_action('save_post', 'save_book_meta_data');

标签: ajaxwordpresswordpress-themingcustom-wordpress-pagesnonce

解决方案


推荐阅读