我正在尝试修改我的代码,以符合WordPress VIP编码标准。我有几个问题想解决,但我不确定最好的策略是什么。
第一个问题是当我在保存metabox数据时验证nonce时:
$nonce = isset( $_POST[\'revv_meta_box_nonce\'] ) ? $_POST[\'revv_meta_box_nonce\'] : \'\';
我这里的错误是
\'Processing data without nonce verification\'
. 这很愚蠢,因为我只是将nonce存储在一个变量中,然后在下一行中进行验证。
第二个问题是在存储数据时:
$foo = isset($_POST[\'foo\']) ? sanitize_text_field( $_POST[\'foo\'] ) : \'\';
update_post_meta( $post_id, \'_foo\', $foo );
在那里的第一条线上,嗅探员抱怨我没有跑步
wp_unslash
在清理数据之前。但数据直接进入
update_post_meta
在下一行,它期望数据不被刷新。
关于消除这些错误消息的最佳策略,有什么想法吗?谢谢
SO网友:Sagar Nasit
您可以使用filter_input
对您的$_POST
大堆
$nonce = filter_input( INPUT_POST, \'revv_meta_box_nonce\', FILTER_SANITIZE_STRING )
使用
empty()
检查
$nonce
是否有值。
您可以将其用于第二个问题
$foo = filter_input( INPUT_POST, \'foo\', FILTER_SANITIZE_STRING )
根据中的预期数据更改第三个参数
$_POST[\'foo\']
. 检查此文档
available filters.