Php 从Wordpress中的预处理注释钩子更改注释表单字段?
上下文:当访问者在Wordpress中提交评论表单时,我想验证preprocess_comment中的数据。如果不满足某些参数,我希望发生三件事:Php 从Wordpress中的预处理注释钩子更改注释表单字段?,php,forms,wordpress,validation,Php,Forms,Wordpress,Validation,上下文:当访问者在Wordpress中提交评论表单时,我想验证preprocess_comment中的数据。如果不满足某些参数,我希望发生三件事: 注释不会被保存 访问者返回到包含表单的页面,其字段将预先填充提交的值 注释表单被修改,并添加了一个带有验证码的额外表单元素 我尝试过这样做: function myplugin_validate($comment) { add_action('comment_form_logged_in_after', 'comment_form_captcha
function myplugin_validate($comment) {
add_action('comment_form_logged_in_after', 'comment_form_captcha_field');
return $comment;
}
add_action('preprocess_comment', 'myplugin_validate');
function comment_form_captcha_field() {
echo "....";
}
但是,这种方法不起作用:
无法停止preprocess_comment中的流
由于从未调用comment_form_captcha_field(),所以您不会返回带有用户提交值的预填充注释表单
当然也有“脏”的替代方案,比如将提交的值存储在会话中,从预处理注释(wp_redirect)重定向用户,以及在重新加载页面后从会话捕获值。或者我可以通过JS拦截提交处理程序并从那里开始
我想知道是否有一种方法可以连接到Wordpress中的评论系统,而不必求助于javascript、会话等