给 WordPress 预留改进的空间
在做我的音乐博客 NoSay.in时我曾经考虑了很多日后进行更新时会遇到的问题,例如:以后我想在首页增加一个快速听歌的功能,因此我在每篇日志里都预先写上了custom field;还有某些对用户体验产生很大影响的插件,以后在更换插件的时候,我如何才能使对用户和我自己的影响降到最低?因此我当时选择了一些使用简便的插件。但昨天我看了wordpress.la的《精通 WordPress简码》后,一个更好的想法诞生了。 WordPress Short Code也叫做短代码或者短码,早在WP2.5里已经加入了这个功能。WP短码在功能上和做主题和插件时经常做的自定义function功能几乎一样,也支持自定义参数。最大的区别是WP短码可以在文章里通过自定义的标记进行调用,具有极高的灵活性。请看摘自wordpress.la的一个例子。
首先说说我的看法。我预留改进的空间的原因是我要避免被“插件劫持”。插件劫持是我自己命名的一种情况,意思是你正在使用一个前台插件,例如Hightslide,要正常使用Highslide的功能的话,我就必须在文章里使用符合Hightslide的规则的代码。麻烦就从这里开始。到了后来的某一天,我觉得Magic Toolbox更好,于是乎我转用Magic Toolbox,可是Magic Toolbox和Hightslide的调用代码不兼容,于是我又要重新修改以前写的文章,使旧文章也支持Magic Toolbox。考虑到旧文章的兼容问题,于是我可能嫌麻烦,而被迫继续使用Hightslide。这就是所谓的插件劫持。而WP短码正好可以解决这个问题。以下是我想到的解决插件劫持问题的方法。 function insert_img($atts,$content = null) { extract(shortcode_atts(array( "href" => 'http://' ),$atts)); return '<a href="http://blog.imbolo.com/'%3C/span%3E%3Cspan%20style="color:#339933">.$href.' class="highslide" onclick="return hs.expand(this)"><img src="http://blog.imbolo.com/'%3C/span%3E%3Cspan%20style="color:#339933">.$content.'" alt="Highslide JS"/></a>'; } add_shortcode("img","insert_img"); 这样我就能通过在文章里插入[img href=http://blog.imbolo.com/”big.jpg”]small.jpg[/img]这样的代码来插入带有Hightslide效果的图片。当我转用Magic Toolbox后,我只需要把短码修改一下,变成: function insert_img($atts,$atts)); return '<a href="http://blog.imbolo.com/'%3C/span%3E%3Cspan%20style="color:#339933">.$href.'" class="MagicThumb"><img src="http://blog.imbolo.com/'%3C/span%3E%3Cspan%20style="color:#339933">.$content.'" alt=""/></a>'; } add_shortcode("img","insert_img"); 通过修改一次代码,我所有采用WP短码插入的Highslide效果都将转变成Magic Toolbox的效果。同样的,如果想在Magic Toolbox的基础上再进行改变,我也是只需要修改我定义的WP短码就可以了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |