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首页的错位调整好了
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^
分享到: | |
感谢分享