马春杰杰 Exit Reader Mode

[mcj]Dux大前端主题使用wp_die函数导致网页排版错误

在使用防止国外用户灌水的代码时,使用到了wp_die()函数,这个函数在dux大前端主题中有个毛病,那就是一旦使用这个函数,整个网页的排版就会发生错误。比如下面这段代码:

//防国外灌水
function scp_comment_post( $incoming_comment ) {
 //禁止 A 链接
 if(strstr($incoming_comment['comment_content'], "<a")){
 wp_die( "您的评论中不能有 A 链接,请直接填写 URL 地址" );
 }
 return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');

这段代码是防止<a>链接的,我们测试一下如果使用了<a>链接之后会发生什么?

输入如图内容,点击提交评论,此时排版就会发生错误:

解决方法也很简单,首先我们定义一个错误提示函数,然后使用这个函数代替wp_die()即可。

//防国外灌水
function mcj_err($ErrMsg) {
    header('HTTP/1.1 405 Method Not Allowed');
    echo $ErrMsg;
    exit;
}
function scp_comment_post( $incoming_comment ) {
 //禁止 A 链接
 if(strstr($incoming_comment['comment_content'], "<a")){
 mcj_err( "您的评论中不能有 A 链接,请直接填写 URL 地址" );
 }
 return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');

此时一切正常:

 

本文最后更新于2019年7月21日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!