WordPress折腾日记–搞了2个小时把WordPress首页的错位调整好了
真悲剧,搞了两个小时才找到问题所在.本来还想写写 非插件给WordPress加上了繁简切换和滚动定位 的也没时间捣鼓了. 先简单介绍一下怎么回事.看图
红色框框里面的严重错位.所以需要调整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找时间再调整吧
欢迎大佬支持本博客的发展 -- Donate --
本文链接:WordPress折腾日记--搞了2个小时把Wordpress首页的错位调整好了
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^
| 分享到: | |
感谢分享