当前位置:首页 »“秋了秋”个人博客 » 网络技术 » wp_die函数导致网页错位的完美替代方案

wp_die函数导致网页错位的完美替代方案

作者:秋了秋 发表时间:2014年07月10日

wp_die是一个大家很熟悉的函数,几乎每个wordpress主题都会有,一般都用在判断语句if后面的错误提示信息,但是我的主题没有,我不允许这么个东西出现在我的网页上,之前折腾过含有wp_die的代码,发现该函数特别流氓,动不动就造成网页错位,只要一提交了表单返回html值的时候,网页就会错乱,且很多东西加载不出来,这个函数就像抽刀断水一样,一执行到该函数的时候,进程立马停止,网页后面的内容全部作废。

函数一般出现的地方示例:

// 表单项数据验证
    if ( empty($name) || mb_strlen($name) > 20 )
    {
        wp_die('昵称必须填写,且长度不得超过20字');
    }

wp_die后面跟踪的是提示信息,即显示给用户看的文字,之后就断开了网页的所有加载,网页布局错乱便随之而来。

之前做ajax评论的时候,也是从网上抄的代码也是wp_die来做提示信息,后来改成err错误提示才解决错位问题,如下:

    if ( $flood_die ) {
    err(__('<font color=Red>您发表评论也太快了so fast!</font>'));
    }
}

其完整结构即为

  err(__......)

但这貌似只能用于ajax页面下使用,最近在制作一个投稿页面,同样网上有很多代码,但都是要用到wp_die函数,除此之外还有很多不足之处,经过我一步步的测试,发现用err(__)是不行的啦,会报错。最终测试echo函数发现完美解决问题,由此可见echo是php通用函数,应该在所有php页面都适用的。代码示例:

     if ( empty($title) || mb_strlen($title) > 100 )
    {
        echo '<br/><br/><br/><br/><div class="errormsg">标题必须填写,且长度不得超过100字。</div><br/><br/><br/><br/>';get_footer();die();
    }
 
    if ( empty($content) || mb_strlen($content) > 10000 || mb_strlen($content) < 100)
    {
        echo '<br/><br/><br/><br/><div class="errormsg">内容必须填写,且长度不得超过10000字,不得少于100字。</div><br/><br/><br/><br/>';get_footer();die();
    }

因为这是判断语句,条件不成立就不能让它执行之后的操作,所以可以用die();来终止操作,不能用wp_die,在终止操作之前必须把该做的事情办完,比如说get_footer();否则网页只能显示一部分,后面的比如说页脚将加载不出来,所以在die();前面加上get_footer();,还有如果页面带有独立css,请把独立css放在该页面的前面,即die();的前面,一般放在网页的<?php get_header(); ?>后面。

0
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/47.html
目录: 网络技术标签: 解决网页错位,wp函数替换 18378次阅读

请求播放音乐,请点击播放

登 录
点击获取验证码
还没账号?点击这里