WordPress折腾日记–搞了2个小时把WordPress首页的错位调整好了  

真悲剧,搞了两个小时才找到问题所在.本来还想写写 非插件给WordPress加上了繁简切换和滚动定位 的也没时间捣鼓了. 先简单介绍一下怎么回事.看图

image 红色框框里面的严重错位.所以需要调整index.php的首页显示.然后发现的中文的excerpt计算字符有问题.于是巴拉巴拉巴拉,发现下面的代码

function chinese_excerpt($text, $lenth=100) {
$text = mb_substr($text,0, $lenth);
 return $ text;
}
add_filter('the_excerpt', ' chinese_excerpt ');

但是呢,其实我的问题不在这里.在线编辑器发文章时的自动标签导致的.于是更换办法,发现了一个挺实用的替换函数

function replaceHtmlAndJs($str)
{
     $str = trim($str);
     if (strlen($str) <= 0) {
        return $str;
     }
     $search = array ("'<script[^>]*?>.*?</script>'si",  // 去掉 javascript
                    "'<[\/\!]*?[^<>]*?>'si",          // 去掉 HTML 标记
                    "'&(quot|#34);'i",                // 替换 HTML 实体
                    "'&(amp|#38);'i",
                    "'&(lt|#60);'i",
                    "'&(gt|#62);'i",
                    "'&(nbsp|#160);'i"
                    );                    // 作为 PHP 代码运行
     $replace = array ("",
           "",
           "\"",
           "&",
           "<",
           ">",
           " "
          );
     return preg_replace ($search, $replace, $str);
}

好吧.我承认这又是无用功.因为全部去掉了标签我的图片也没了.悲剧.正则表达式也很乱.而且发现一个更好的替换函数

strip_tags(string,allow)

但是继续悲剧,还是不对.因为Wordpress内置函数the_excerpt()没有返回值,自动echo输出了.那怎么办,继续找吧.寻寻觅觅wp-include/post-template.php,抄了函数老家发现一个the_excerpt()和一个get_the_excerpt(),终于被我抓到了.木哈哈哈

最后的解决办法,在functions.php里面添加一个函数

function my_excerpt()
{
    echo strip_tags(apply_filters('the_excerpt', get_the_excerpt()),"<a><strong><span><b><img><div>");
}

然后在index.php对应的位置替换成这样就行了

if(is_single()) {
    the_content(); 
} else {
    my_excerpt();
}

成了,现在的效果.虽然还是很难看,但是毕竟不会错位了.下面的read more找时间再调整吧

image 我对wlw的编码高亮越来越怨念…真难看… …

请订阅本站 RSS feed 订阅到信箱 ,欢迎 Donate 或者 上面的广告内容 支持三十岁

本文链接:WordPress折腾日记--搞了2个小时把Wordpress首页的错位调整好了

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
评论关闭