各位可能都已经看见了,我的博客文章的第一段都有首字下沉的效果,这个效果使用的是桑林志提供的首字下沉插件。安装上之后,修改一下css,大体就可以用了。
这个插件在我的wordpress 2.31版中基本正常,但是一旦文章的内容不是以汉字或者字母开始的话,应该正常输出的内容就会消失,注意,不是被删除,而是没有显示出来。比如我的美味书签这个类别中的内容,是由del.icio.us自动发送过来的,这一部分内容在安装了首字下沉插件后,全部没有显示出来。
经过对这一部分内容的分析,我发现,如果文章的内容如果以html标签开始的话,wordpress默认的编辑器会对这些标签进行整理,重新配对并排版,并在第一个标签前面自动插入一个回车符。就像这样。
正是这个回车符,导致了桑林志首字下沉插件对html标签开头的文章输出错误,其实解决的办法很简单,加一个判断条件and substr($newContent1[1],0,1)!=''就万事大吉了。另外结合Zao’s Blog提供的信息,修正了多余的一个</p>标签。
修改后的部分代码如下:
- function drop_cap ($content) {
- $newContent = explode("</p>", $content);
- $newContent1 = explode("<p>", $newContent[0]);
- // 如果第一个字母不是 <,就进行首字下沉处理,否则就输出原始内容。这样做,是为了避免一些显示问题。
- if (substr($newContent1[1],0,1)!='<' and substr($newContent1[1],0,1)!='' ) {
- $bufContent = "<p class='fp'>".$newContent1[1]."</p>";
- for($i = 1; $i < count($newContent)-1; $i ++){
- $bufContent .= $newContent[$i] . '</p>';
- }
- $bufContent .= $newContent[$i];
有 7 条评论啦! ↓
兄弟,你太有才了。偶然路过踩了一踩。俺是骆驼养殖户,有事多联系,电话:0707007
你怎么不养鸵鸟?可以当千金马,鸵鸟蛋还可以吃。
嘿嘿,你说的这个问题我很早就注意到了,但没找到解决的办法,于是只好在每篇文章的开头都写一些文字来绕过这个问题。其实并不是HTML开头的就不能下沉,我发现ul、ol开头的文章存在这个问题,但像strong这个标签是有效的,div等标签我没试过。你的这个方法也只是把以html标签开头的内容不下沉,始终不能实现html开头的内容也下沉。希望你再研究一个完美的办法。^_^
我的这个办法针对的是首行出现回车符的情况,至于为什么会出现回车符,我理解的原因就是wp将首行的各种标签自行配对处理,这些标签包括以ul、ol、div等等html标签。
呵呵,帮顶!来听听鬼故事……
[...] 首字下沉插件的小小修改 | 大漠沙尘 (tags: wordpress plugin) [...]
[...] 随机文章 安装WordTube插件完善了一下Copyblogger主题首字下沉插件的小小修改 [...]
看,又有一位同学准备发言了: