I code it

Code and Life

我的第一个wordpress插件

由于我的博客大部分是图片+代码+文字的形式,因此我在Windows Live Writer中安装了语法高亮的插件(code snippet),开始用的时候确实很舒服,但是发布之后发现,行与行之间的间距太大,非常难看。

image

因此在网络上搜索了一下解决方法,结果找到这篇文章,其中讲到使用add_filter将间距过滤掉。但是没有提及将这些代码置于何处。

   1: function filter_code_snippet($content){
   2:     $content = str_replace('<p><!--CRLF--></p>', '', $content);
   3:     return $content;
   4: }
   5: add_filter('the_content', 'filter_code_snippet');

 

于是打算自己写一个插件,插件的实际内容就是这段代码,感谢该作者。

  1. 创建一个目录,命名为filter-stupid-csp
  2. 在该目录下,创建一个php文件,我命名为(filter-stupid-csp)
  3. touch一个空的readme.txt文件

在php文件的开始,添加下列信息,此信息的内容可能不重要,但是格式很重要,请参照下列代码来写,否则可能出现安装不成功的问题:

   1: /*
   2: Plugin Name: filter-stupid-csp
   3: Plugin URI: http://www.icodeit.org
   4: Description: filter-stupid-csp
   5: Version: 0.0.2
   6: Author: juntao
   7: Author URI: http://www.icodeit.org
   8: */

然后,添加版权信息,我使用的是GPL,如果你想使用MIT,BSD的均可在此著名,wordpress需要向外部展示此信息:

   1: /*  Copyright 2012  juntao  (email : juntao.qiu@gmail.com)
   2: 
   3:     This program is free software; you can redistribute it and/or modify
   4:     it under the terms of the GNU General Public License as published by
   5:     the Free Software Foundation; either version 2 of the License, or
   6:     (at your option) any later version.
   7: 
   8:     This program is distributed in the hope that it will be useful,
   9:     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10:     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11:     GNU General Public License for more details.
  12: 
  13:     You should have received a copy of the GNU General Public License
  14:     along with this program; if not, write to the Free Software
  15:     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  16: */

添加实际的代码:

   1: /**
   2:  * filter the stupid wlw-code-snippet-plugin style.
   3:  * added by juntao.qiu, 2012/01/18
   4:  */
   5: function filter_code_snippet($content){
   6:     $content = str_replace('<p><!--CRLF-->', '', $content);
   7:     return $content;
   8: }
   9:  
  10: add_filter('the_content', 'filter_code_snippet');

注册一个过滤器,对内容执行filter_code_snippet的过滤器,这个过滤器将内容中的垃圾串替换成空,并返回过滤过的内容(这正是我们需要的结果)。需要注意的是,原文中过滤的垃圾传与我实际的不一样,我在chrome中跟了一下,发现生成的p没有闭标签,因此在0.0.2中去掉了闭标签。

然后将文件夹filter-stupid-csp中的两个文件(readme.txt及filter-stupid-csp.php)打包成一个zip文件,应该注意的是,zip文件打开后直接就是这两个文件,不带文件夹。然后上传到wordpress,并安装启动即可。

最终的效果如下:

image

希望这个文档对与我在相同环境的朋友有所帮助。

Comments