首字下沉插件的小小修改

各位可能都已经看见了,我的博客文章的第一段都有首字下沉的效果,这个效果使用的是桑林志提供的首字下沉插件。安装上之后,修改一下css,大体就可以用了。 这个插件在我的wordpress 2.31版中基本正常,但是一旦文章的内容不是以汉字或者字母开始的话,应该正常输出的内容就会消失,注意,不是被删除,而是没有显示出来。比如我的美味书签这个类别中的内容,是由del.icio.us自动发送过来的,这一部分内容在安装了首字下沉插件后,全部没有显示出来。 经过对这一部分内容的分析,我发现,如果文章的内容如果以html标签开始的话,wordpress默认的编辑器会对这些标签进行整理,重新配对并排版,并在第一个标签前面自动插入一个回车符。就像这样。实例 正是这个回车符,导致了桑林志首字下沉插件对html标签开头的文章输出错误,其实解决的办法很简单,加一个判断条件and substr($newContent1[1],0,1)!=''就万事大吉了。另外结合Zao’s Blog提供的信息,修正了多余的一个标签。 修改后的部分代码如下:

function drop_cap ($content) { $newContent = explode("</p>", $content); $newContent1 = explode("", $newContent[0]); // 如果第一个字母不是 <,就进行首字下沉处理,否则就输出原始内容。这样做,是为了避免一些显示问题。 if (substr($newContent1<a href="http://www.yangzh.net/wp-content/uploads/2007/12/editor.gif">1</a>,0,1)!='<' and substr($newContent1<a href="http://www.yangzh.net/wp-content/uploads/2007/12/editor.gif">1</a>,0,1)!='' ) { $bufContent = "<p class='fp'>".$newContent1<a href="http://www.yangzh.net/wp-content/uploads/2007/12/editor.gif">1</a>."
</p>"; for($i = 1; $i < count($newContent)-1; $i ++){ $bufContent .= $newContent[$i] . ''; } $bufContent .= $newContent[$i];</p>

“首字下沉插件的小小修改”的16个回复

  1. 兄弟,你太有才了。偶然路过踩了一踩。俺是骆驼养殖户,有事多联系,电话:0707007

  2. 嘿嘿,你说的这个问题我很早就注意到了,但没找到解决的办法,于是只好在每篇文章的开头都写一些文字来绕过这个问题。其实并不是HTML开头的就不能下沉,我发现ul、ol开头的文章存在这个问题,但像strong这个标签是有效的,div等标签我没试过。你的这个方法也只是把以html标签开头的内容不下沉,始终不能实现html开头的内容也下沉。希望你再研究一个完美的办法。^_^

  3. 我的这个办法针对的是首行出现回车符的情况,至于为什么会出现回车符,我理解的原因就是wp将首行的各种标签自行配对处理,这些标签包括以ul、ol、div等等html标签。

  4. 重要的话说三遍:这一切的一切,都归那LBYD!不知道真相的国人可以想办法读一读高华的《红太阳是怎样升起的》,张戎的《猫厕洞鲜为人知的故事》李志绥的《猫厕洞和他的私人医生》,你会感到毛骨悚然,那LBYD就是中国的撒旦!

  5. 革命,任何革命,就是对现状的破坏,都是不合法的。但是可以用合理来解释,因为为了某种社会进步也许避免不了革命。现在的问题是不合理的东西太多了,甚至有些法也不合理(如以言治罪),先要认识为什么有许多不合理,根源在哪?空谈合不合法没有多大意义。

评论已关闭。