在 Plugin 中使用 WP_PLUGIN_URL 的问题

通常,在 WordPress 的 Plugin 编写中,如果涉及到静态文件的引用,我通常会这样写

echo '<link rel="stylesheet" href="'.WP_PLUGIN_URL.'/myplugin/somecss.css" type="text/css" media="screen">'."\n";

如果你在 General Settings 中的 WordPress Address (URL) 里设置的是一个 HTTP 地址,如 https://bingu.net
而别人用 HTTPS 地址 https://bingu.net 来访问的时候,插件里的静态文件引用仍旧是以 HTTP 地址为基础,就不能很好地载入了。

问题出在 WP_PLUGIN_URL 这里,看看它的定义是怎样的 WP_PLUGIN_URL (WordPress Constant)

define( 'WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' );

再来看看 WP_CONTENT_URL 的定义是

define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' );

WP_PLUGIN_URL 的基础地址是 get_option( ‘siteurl’ ),也就是 General Settings 中的 WordPress Address (URL) 里设置的地址,这里是一个硬编码的一个地址,设置的是 HTTP 地址,get_option 出来就是 HTTP 地址,不会根据访问的情况自行更替 scheme。

因为浏览器在静态文件链接没有提供 scheme 时,会根据访问地址的 scheme 自行载入相应 scheme 的静态文件。这样解决就很容易了,只要将 WP_PLUGIN_URL 变成一个没有 scheme 的地址就可以了,所以上面的静态文件的引用变成了这样

echo '<link rel="stylesheet" href="'.str_replace(array("http:", "https:"), "", WP_PLUGIN_URL).'/myplugin/somecss.css" type="text/css" media="screen">'."\n";

让Firebug竖向显示

宽屏时你有没有这样的困扰,Firebug一打开基本把显示区域占了一大半,当你调试一个窄而长的网页时,这样的困扰就更加明显了。
让Firebug竖向显示

这时你有没有什么想法 ❓ 为什么不让Firebug竖向显示呢 ❗

Firebug本身是没有这样的选项的,如果要实现这样的效果,只能用一个竖版Firebug——Widerbug来替代了。
Widerbug使用效果图

虽然不是长久之计(此插件没有在官方扩展中列出,而作者的网站竟然打不开了看来是偶然问题,又可以了。),不过聊胜于无,希望Firebug能来个选择竖向显示的选项吧。

这里下载适合Firefox3.0+的Widerbug

WordPress官方插件库SVN的400 Bad Require错误的解决

当你使用Windows XP,并用TortoiseSVN提交插件到WordPress官方插件库时,你可能会遇到这样的问题:不会弹出输入用户名和密码的提示框,然后提示“400 Bad Require”错误。

解决方法很简单:把WordPress邮寄给你的地址,例如:http://svn.wp-plugins.org/someplugin/,改为:https://svn.wp-plugins.org/someplugin/,即可。

二零零八总结与二零零九展望

二零零九年已经来到,又是时候对过去的一年做一个总结了。
当然,自然少不了对二零零九年来个展望啦。(希望自己能做到吧 😕 )

二零零八年发布文章数:107

数量比上一年有了明显的提高,但自己感觉还是少了点,所以希望接下来的二零零九年能发布更多的文章。

#对应的得到2008年发布文章数的SQL语句
SELECT COUNT( * )
FROM `wp_posts`
WHERE post_date >= '2008-01-01'
AND post_date < '2009-01-01'
AND post_type = 'post'
AND post_status = 'publish'

收到的留言(包括trackback与pingback):940

得益于国人在WordPress留言系统上的改进与提高,留言数有了很大的提高。(当然冰古自己的留言都占了一大部分 :mrgreen:
二零零九年的希望当然是越多越好啦 🙂 (这个任务希望大家帮帮忙)

#对应的得到2008年收到留言总数的SQL语句
SELECT COUNT( * )
FROM `wp_comments`
WHERE comment_date >= '2008-01-01'
AND comment_date < '2009-01-01'
AND comment_approved =1

二零零八年发表并收到留言数量前十的文章:

  1. godaddy域名超级优惠码 → 留言数:38
  2. WordPress中用Ctrl+Enter提交留言 → 留言数:37
  3. 《命令与征服:红色警戒3》电驴下载 → 留言数:29
  4. 《归来!悟空和他的朋友们》QQ中转站下载 → 留言数:26
  5. 博客接龙大赛:Wordpress十八摸 → 留言数:25
  6. 长见识啊 → 留言数:25
  7. Gmail邮件小表情 → 留言数:25
  8. 常驻我电脑的国产软件 → 留言数:24
  9. WordPress主题:Simple.1 → 留言数:19
  10. 使用Netbeans开发WordPress → 留言数:19
#对应的收到留言最多的文章的SQL语句
#wordpress 2.7适用,其他版本未测试
#如不能使用,可以参考:https://bingu.net/425/some-sql-for-2006-blog-stats/
SELECT `ID`, `post_date`, `post_title`, `comment_count`, `post_name`
FROM `wp_posts`
WHERE post_date >= '2008-01-01'
AND post_date < '2009-01-01'
AND post_type = 'post'
AND post_status = 'publish'
ORDER BY `wp_posts`.`comment_count` DESC

附上使用GaMerZ WP-PostViews插件的查看数最多统计SQL语句:

SELECT DISTINCT meta_value, ID, post_title, post_name, post_date, comment_count
FROM `wp_posts` , `wp_postmeta`
WHERE post_id = ID
AND post_date >= '2008-01-01'
AND post_date < '2009-01-01'
AND post_type = 'post'
AND post_status = 'publish'
AND meta_key = 'views'
ORDER BY cast( `meta_value` AS DECIMAL ) DESC

最后,感谢各位的留言支持:
最勇猛的五位兄弟(姐妹?)是

  1. wayne → 留言数:25
  2. Donald → 留言数:24
  3. Yacca → 留言数:19
  4. iColor → 留言数:18
  5. JoBru → 留言数:18
#对应留言最多的SQL语句
SELECT DISTINCT concat( '<a href="', comment_author_url, '">', comment_author, '</a>' ) , count( comment_author ) AS num_author
FROM `wp_comments`
WHERE comment_date >= '2008-01-01'
AND comment_date < '2009-01-01'
AND comment_author != '冰古'#去掉自己吧
AND comment_type != 'trackback'
AND comment_type != 'pingback'
AND comment_approved =1
GROUP BY comment_author, comment_author_email
ORDER BY num_author DESC

测试碎碎念

Sideblog Plugin在侧边栏弄个碎碎念

常驻我电脑的国产软件

看到Digglife的“常驻我电脑的10个免费国产软件”,觉得挺有意思的。我的电脑里软件装的不算很多,一百多个,国产貌似不多,但留下的无疑是最好用的。

按照数字字母顺序排序:

1.360安全卫士系列:包括,360安全卫士、360保险箱以及360ARP防火墙。曾经试图安装他们提供的免费杀毒软件,失败告终,只好继续用外国老牌免费杀毒软件“avast!”。不过不得不说,360还是很好用的,现今木马、usb病毒横行,装上基本可以保证不会惹上。

2.ComicsViewer:看漫画必备软件。功能很不错,可以直接打开zip和rar(zip才是王道、顺畅,rar则会有点卡。)打包的漫画,而不用解压。而且有密码的压缩包,输入密码后也可以直接打开。当然你也可以将她作为看图片的软件。免费绿色,打包后仅0.91mb。

3.福昕阅读器:也就是Foxit Reader,PDF阅读器,小巧绿色免费,载入速度飞快。直接把大而慢的Adobe Reader删除了吧。

4.金山系列:包括“谷歌金山词霸”和“WPS Office 2007个人版”。我算是金山的老用户了,曾经在《电脑报》上以优惠价购买了金山系列的软件包,虽然该软件包不包括WPS,但有次看到WPS的介绍后,WPS就成了我电脑上的常驻软件了。

5.影音风暴:看清楚名,这个不是暴风影音,此软件是一款无插件,无病毒的纯绿色全能播放器。自从暴风影音会弹狮子以后,我就改用这个软件了。清清爽爽的,基本不会比暴风影音差。

6.网络传送带:不知道有没有人记得这款下载软件,当年跟netants、flashget都是下载软件的代表(貌似这三个下载软件都是国人开发的,当时是共享软件)。不过BT,迅雷等等下载形式、软件的出现,上面的下载软件基本都已经不见了踪影(是的,flashget还是一条好汉,不过从共享软件变为了免费软件)。我还保留“网络传送带的原因是这个软件还附带了ftp传送带,有时用这个软件进行ftp上传(外国空间的ftp上传速度是个问题),速度很快的 😆 。

7.腾讯系列软件:包括“QQ”和“超级旋风”。QQ是跟熟人联系的必备软件。超级旋风,一个下载软件,腾讯推出的中转站,用此软件下最爽了。

8.千千静听:音乐播放软件。集成度很高,易用,没有多余的下载功能。最新版本会导致死机问题,一度想换一个音乐播放软件,可惜试用了网上大多数的音乐播放软件,没有一个是顺手的,最后还是下载回旧版的千千静听,继续使用。

9.WisMencoder:视频格式转换软件。免费绿色好用。

10.Windows优化大师:其实基本已经弃用,改用ccleaner了,因为ccleaner是免费的,功能也基本够用。不过这款软件驻扎我的电脑里也有两三年之久了,也出来露露脸。

基本这些就是我电脑中装上的国产软件了,很遗憾,没有一款代码编辑器。

支付宝将支持Firefox

很久很久以前,支付宝是支持firefox的。突然有一天,支付宝跑出来说:为了安全,我们不支持除了ie外的浏览器了(我搞不懂的是,在这之前为什么支付宝是支持firefox的呢?)。就这样支付宝就开始了漫长的只支持安全性最差的ie的生涯。

就在不久前,支付宝声称他们准备开始支持firefox了!这消息一出,大家都围了过来,争相抢装这“准备开始”前放出来的扩展/插件?但似乎支付宝还没准备好。

我的体验是这样的:
在firefox上打开支付宝的首页,“小黄条”闪现。
支付宝将支持Firefox
点击“安装缺失插件”,提示“未找到合适插件”
点击其首页右下角的“下载Firefox版安全控件”,下载安装。这时,我可怜的免费杀毒软件终于露出了很久没出现的“发现情况”后的…“笑容”…囧
支付宝将支持Firefox
放弃了上面的安装后,我以为或许“支付宝安全控件”可以安全点的……安装,重启firefox,avast又开始欢快地叫了起来……囧
帐房先生说,应该是误判。(难不成要“青天大老爷”改判?)
那么,还是继续等待支付宝真正支持firefox吧。

WP插件:C4F Textarea Toolbar

C4F Textarea Toolbar是一个提供表情以及常用标签按钮到留言区的WordPress插件。具体效果

这个插件的出现,让我放弃了多年使用(但没有更新过)的WP Grins
WP Grins功能很简单,就是在留言区和写作区添加默认表情的快捷按钮。
C4F的功能也不复杂,比WP Grins多的就是在留言区多添加一组常用标签的快捷按钮,但也缺少了在写作区的表情快捷按钮。

C4F的安装挺简单的,我仅仅在WP Easy Uploader粘帖了C4F的链接,点击上传,然后在管理后台的Plugins激活C4F就可以了。
它的设置选项也很简单,上面的三个选项是显示表情和标签、仅显示标签、仅显示表情,下面的选项是否打开插件作者的链接。
WP插件:C4F Textarea Toolbar

添加下面的代码到主题文件的适当位置,可以改变显示表情和标签的位置。

<?php if (function_exists("C4F_TextareaToolbar")) C4F_TextareaToolbar(); ?>

例如,表情和标签的位置在输入区的上方是这样设置的:
在主题的comment.php文件中找到类似下面的一行

<p><textarea name="comment" id="comment" cols="55" rows="10" tabindex="4"></textarea></p>

然后添加C4F的代码到它的上面,如下,即可。具体效果

<?php if (function_exists("C4F_TextareaToolbar")) C4F_TextareaToolbar(); ?>
<p><textarea name="comment" id="comment" cols="55" rows="10" tabindex="4"></textarea></p>

如果C4F能做如下更新,那就更爽了:
1.在写作区也添加上表情的快捷按钮;
2.可以在管理后台设置快捷按钮的显示位置,而不是要自己修改主题的文件;
3.待续……