WordPress 分页插件,WP-PageNavi 或 WP-PageNavi-LightWord

在 WordPress 中可以设置每天显示的日志数,并以上一篇、下一篇的链接进行导航。但是日志多了,一个是不能快速跳到哪几篇来浏览,还有就是别人对你有多少篇也没底。所以需要一个分页导航的插件,网上一找就看到了 WP-PageNavi 比较受推崇,而 WP-PageNavi-LightWord 只是 WP-PageNavi 针对 LightWord 主题的一个改造版,仅仅是自定义了下样式,其他如选项、代码几乎一样,由于它们使用了同样的函数,所以不能同时被激活。可以先看看它们界面上的一些区别:

WP-PageNavi 的界面截图:WP-PageNavi-LightWord 的界面截图: 阅读全文 >>

PHP GD 库在 Linux 下使用字体

现在一般的 PHP 主机都支持 GD 库和 FreeType/TrueType,普通的画字符串的函数 imagestring 只能指定字体大小,不能指定字体名称。像 imagettftext 这样的函数可以指定字体名称和字符串显示的角度,它的原型是:

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

注意这里的 $fontfile 是个字体文件,不是字体名,我刚开始就搞错了,给它传递的是 "Arial" 或是 "Arial.ttf" 而不能显示出任何东西来。在 Windows 下字体文件一般都在 c:/windows/fonts/ 目录中,所以在 Windows 下用 imagettftext 使用 TrueType 字体时的代码例子如下: 阅读全文 >>

PHP 中回调函数是全局的或是类实例时不同写法

PHP 像 JavaScript 一样,很方便使用回调函数,函数名就像一个普通的变量名一样可作为其他函数的参数,即成为一个让宿主函数调用的回调函数。但回调函数的用法依据回调函数是否是全局函数还是一个类中的函数是有区别的。比如 PHP 的preg_replace_callback — 用回调函数执行正则表达式的搜索和替换函数可以接受一个回调函数,我们来看这种区别。

如果是全局的回调函数,那容易,只要写上函数名作为字符串的形式传入就行的,看:

而如果 preg_replace_callback 函数是在类成员函数中被调用,同时 inverse 回调函数也是该类的成员函数,写法就不一样了。要是仍然写成下面这种方式的话: 阅读全文 >>

XSLT 生成 XML 中带 CDATA 的节点

原来曾经都是用代码或是像 Velocity 样的模板来转换生成 XML的,自从接触了 XSLT 后,已把它当成了 XML 到其他许多数据格式的不二之选了。有时候因为特殊字符等因素,需要转换后的数据在新节点中用 <![CDATA[...]]> 包裹起来更好看且不易出错,或者还需对生成的 XML 进一步处理时,用 <![[CDATA[...]]> 会更保险些 。

通常我们在 xslt 文件中会这么写:

<description><xsl:value-of select="Description"/></description>

如果原来的 Description 中有特殊字符,如 < 等,转换后,< 会自动变为 &lt; 的,即得到

<description>Hello&lt;Unmi</description> 阅读全文 >>

真是瞎折腾了一回,设置 RSS 中输出的记录数原本如此简单

之前写有一篇 让 WordPress 的 Rss 显示更多或所有的日志, 为了让 WordPress 的默认 Post 和 Comment 的 RSS 输出记录数多于10 条,竟然把这一系列的代码都穿越了一番。确实解决了问题,定位到了 RSS 在查询时 limit 值在哪行代码得到的,当时通过修改 query.php 手工指定输出的记录数。因为 WordPress 代码无法单步调试,所以为了找到这段代码着实费了好一番功夫的。

其实何必来得如此周折呢,在后台里可以直接修改该参数的,wp-admin 中点击 Settings->Reading,打开 Reading Settings 页面,选项 Syndication feeds show the most recent 就是用来设置输出各种 RSS 记录里显示最近多少条记录,反应到 SQL 就是 limit 0, X  中的 X 值,比如 20 条记录,或者你的博客有 2000 条记录,你设置的此值为 2000 大就输出所有的记录了。 阅读全文 >>

用 SyntaxHighlighter Evolved 作为自已的代码加亮插件

敝人的博客常常要贴程序代码,因而装个合适的语法加亮的插件是必不可少的。可以预见得到的是基本上各种语法加亮的插件都是源自于 Google 上的一个项目 SyntaxHighlighter. 但具体选用哪一个却要好自体验斟酌的。有几篇很好的文章可参考下:

1. WordPress代码高亮插件指南[译文]
2. WordPress 高亮代码显示插件 – SyntaxHighlighter Evolved
3. 让 WordPress 下 CKEditor 支持 CodeColorer,
4. wordpress代码高亮插件wp-codebox使用方法(语法详解)

怎么着那都是他人之言了,自己试了才知究意,我就说说 SyntaxHighlighter Evolved 吧,我正用着的。之前在 http://unmi.blogjava.net 的博客我往日志中嵌入代码的方式是 <textarea name=code class=php></textarea> 来写的,这样在 textarea 中代码能保持原有的格式,该有的空格都在,那是因为那边的编辑器支持的好, 阅读全文 >>

WordPress 站点架设手记,你也可能会用到的插件

说来还得益于工作中的内容就有要维护着一个 WordPress 的网站,必要时开发些插件。之前用 Joomla 架过一个站点(http://www.scalawork.com),懂得了 WordPress 的精练之后才晓得 Joomla 是何等的复杂。当然功能上 WordPress 与 Joomla 恐怕还是有些差距,但适合自己就是最好的。其间对 Dropal 也略有了解,仍不妨碍我最终选择了用 WordPress,当然对它的熟悉程度也是最重要的一点。

辛苦忙活了一阵总有不少收获,顺便记下了架设这个 WordPress 站点的过程。首先,要买个空间和域名自是不必多说,要想省事或是对某些行规反感的话就买国外的吧,代价就是有点慢。恰如此处,浏览时多加点耐心哦,看来应该是主机的缘故,得换到西部某个机房去试试。 阅读全文 >>

让 WordPress 的 Rss 显示更多或所有的日志

默认 WordPress 提供的 RSS 链接只能获得最近的十篇日志,如果想得到更多,或是用于某种目的而想通过 RSS 获得所有的日志,那恐怕就得做些手脚了,或许还有更简单的办法,只是我这里改了下源代码中的 limit 查询参数。

关于 WordPress 的 Feed 请参考:http://codex.wordpress.org/WordPress_Feeds,用以下代码可以输出你实际的 RSS 的 URL:

URL for RDF/RSS 1.0 feed      <?php bloginfo('rdf_url'); ?>
URL for RSS 0.92 feed         <?php bloginfo('rss_url'); ?>
URL for RSS 2.0 feed          <?php bloginfo('rss2_url'); ?>
URL for Atom feed             <?php bloginfo('atom_url'); ?>
URL for comments RSS 2.0 feed <?php bloginfo('comments_rss2_url'); ?>

在我的机器上永久链接后是用 http://unmi/feed/ 来访问 rss2,模板将会用 wp-includes/feed-rss2.php 文件。要说定位到这段代码还真不简单。 阅读全文 >>

WordPress 应用中如何实现 URL 内部重定向

这里要说的 URL 重定向不是指地址栏输入一个 url a,然后地址栏的 url a 被变为 url b 那样的重定向,而是指 url 不变的重定向,也就是重定向过程在服务端默默的帮你完成了。

这个需求是源于开发 WordPress 插件时,然望在前端仅用 http://unmi/dosth 这种形式来访问自己的插件程序,而不是用 http:/unmi/wp-content/my-wordpress-plugin/dosth.php 这么一长串不友好的 URL。

有三种办法:

1. WordPress 是极力推荐与 Apache 搭配使用,所以可以在 Apache 的配置文件中用 Alias 指令。其实一开始我是想在应用的 .htaccess 文件中加指令,使用 mod_rewrite 模块来实现 URL 内部重定向功能,但碰到一些问题,所以暂时先在 httpd.conf 中加过 Alias 指定别名来实现过: 阅读全文 >>

Asp.Net 让文本框在按回车键时表单不提交

Asp.Net 的 WebForm 中光标在文本框时按回键默认就会提交表单,多数时候确实带来了很好的用户体验,输入数据后,手不用离开键去乱摸鼠标就能完成表单的提交。但总有例外不想要这种默认行为,一定有的,你遇到了就知道的,比如想在文本框中回车做别的事情,那就要点技巧的。

很多人可能会告诉你对文本框加个事件,回车的时候把 keyCode 由 13 变为 9(其实 keyCode 变为 9 是使回车相当于 Tab 键的功能),不过还未完事,你并没有阻止事态进一步蔓延,Form 还是提交了。 阅读全文 >>