我正在处理我的评论部分,并添加了一个自定义字段
<input type="hidden" name="be_user_star_rating" id="be_user_star_rating" value="" />
其值由Javascript设置。
使用以下内容进行验证:
add_action( \'comment_post\', \'be_comment_rating_insert_comment\', 10, 1 );
function be_comment_rating_insert_comment( $comment_id )
{
if( isset( $_POST[\'be_user_star_rating\'] )
&& $_POST[\'be_user_star_rating\'] > 0
&& $_POST[\'be_user_star_rating\'] <= 5
&& is_numeric($_POST[\'be_user_star_rating\']) ) {
$val = (int) $_POST[\'be_user_star_rating\'];
update_comment_meta( $comment_id, \'be_user_star_rating\', esc_attr( $val ) );
}
}
因为这是连接到
comment_post
, 我是否需要担心检查自定义nonce(超出验证范围)?或者Worpdress会处理它吗?
最合适的回答,由SO网友:Xhynk 整理而成
A.WordPress Nonce, 虽然不是真正的,但它的功能类似于保护表单或页面免受未经授权的访问和滥用。
默认情况下,如果当前用户具有unfiltered_html
能力。
因此,如果表单是用标准过程实现的,那么您所要做的就是验证您自己的输入,而不必处理nonce。
从…起comment-template.php:
/**
* Display form token for unfiltered comments.
*
* Will only display nonce token if the current user has permissions for
* unfiltered html. Won\'t display the token for other users.
*
* The function was backported to 2.0.10 and was added to versions 2.1.3 and
* above. Does not exist in versions prior to 2.0.10 in the 2.0 branch and in
* the 2.1 branch, prior to 2.1.3. Technically added in 2.2.0.
*
* Backported to 2.0.10.
*
* @since 2.1.3
*/