处理我的函数-WordPress上没有非CE验证错误的数据



这是我的功能:

public function save_meta( $term_id = 0, $taxonomy = '' ) {
    $meta = ! empty( $_POST['banner'] ) ? $_POST['banner'] : '';
    if ( empty( $meta ) ) {
        delete_term_meta( $term_id, 'banner' );
    } else {
        update_term_meta( $term_id, 'banner', $meta );
    }
}

当特拉维斯审查代码时,它告诉我处理未经非CE验证的数据。 ||(wordpress.csrf.nonceverification.nononceverification(

我尝试了以下操作,但不起作用:

public function save_meta( $term_id = 0, $taxonomy = '' ) {
    $meta = ! empty( $_POST['banner'] ) && wp_verify_nonce( sanitize_key( $_POST['banner'] ) ? $_POST['banner'] : '';
    if ( empty( $meta ) ) {
        delete_term_meta( $term_id, 'banner' );
    } else {
        update_term_meta( $term_id, 'banner', $meta );
    }
}

我的代码怎么了?

nonce是用户ID的哈希,会话令牌,当前时间和由函数wp_create_nonce((生成的标签。该哈希用于验证该请求不是Conterfeit的。在您的情况下,合适的标签将是" update-banner_"。$ term_id。您的HTTP请求应返回此nonce作为查询或邮政参数。对于表单提交,通常是通过使用表单中的隐藏字段来完成的。WordPress提供了便利函数WP_NONCE_FIELD((来执行此操作。然后,您的请求处理程序应使用函数WP_Verify_nonce((或便利函数CHECK_ADMIN_REFERER((验证此nonce。请阅读WordPress文档以获取有关调用这些功能的详细信息。