在 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";

修复lnmp一键安装包WordPress伪静态错误

用过的lnmp一键安装包有二,之前用的猫叉lnmp和现在用的lnmp.org。两家的WordPress伪静态设置都有同一个问题,就是进入wp-admin后台输入的网址为不带最后的斜杠时(如:https://bingu.net/wp-admin),则进入后台后点击左边的导航栏将不能进入正确的网址(如,留言编辑页面正确网址应该为:https://bingu.net/wp-admin/edit-comments.php,这时点击进入的却是:https://bingu.net/edit-comments.php),得到的将是闪亮的404页面。
wordpress-nginx-rewrite-conf
Read More »

禁用scandir导致wordpress主题列表出错

重新布置lnmp环境后,的确有注意到PHP是禁用了scandir了这个函数的,当时没怎么留意。在更换wordpress主题时就发现死活刷新不出该有的主题,只列出了当前使用主题。搜索后才发现原来是禁用scandir导致了这个问题,重新启用scandir函数后搞定。

T两个腾讯微博的邀请

tencent-twitter_copy-site
最近腾讯也搞微博,之前新浪、搜狐搞微博的时候,我都没有主动去注册。但腾讯这回却搞个邀请制,靠,这不是诱惑人嘛。这不推特上也是从开始大家都到处求邀请,到现在每天都能看到有人在推上扔邀请。是的,我也不能免俗,搞邀请的,我都搞了。

虽然在推特上腾讯邀请已经不再金贵,但一天腾讯微博没有开放注册,邀请还是有人要的,这里我就送两个腾讯微博的邀请,先到先得,第一二楼将收到邀请。
Read More »

再次更新blogbus2wordpress

在新一轮的爬行行动中,blogbus不幸中招,再次更新一下以往的blogbus2wordpress程序

很匆忙弄的,只是纯粹用正则表达式把blogbus备份中的tag转换了一下,所以这个程序的运行是完全是没有效率可言的,当然我在上网本中测试是可以把1MB左右,大概四五百篇文章的备份(这个备份只是我从几篇短小的文章扩展成四五百篇这样子)转换成功的,大家尽管试试吧。

这个版本可以完整保留blogbus中的分类和标签,但依旧没有保留留言。
Read More »

见鬼的WP2.8编辑器代码高亮

早两天新装了一个WordPress,2.7.1版的,不过很神奇的是,2.8里的功能已经能提前体验了。这不,我就尝到了我并不喜欢的代码高亮功能的s**t了。

我对在线编辑器的要求很简单,一个文本框加一个按钮就已经完全能满足我的要求了(事实上,文章编写区的文本编辑器我仍旧使用的是老旧的代码编辑器,而不是2.3才添加的TinyMCE编辑器)。我使用在线编辑器的频率并不高,一个月能用一次,已经够频繁的了。我的网络环境并不好,很烦那个不停转的圈。

见鬼的WP2.8编辑器代码高亮
Read More »

新主题,暂名Simple.2

一个主题用的久了,总想着弄个新的,这或许就是人性的喜新厌旧吧。现在这个主题,暂时我是叫她Simple.2的,因为她跟Simple.1比较相似嘛。

Simple.2现在还是一个半成品,我想着要弄个很方便的主题控制面板,可以在控制面板上完成大部分修改主题的工作。现在控制面板还只有一个控制主题导航栏的功能,而这却已经花费了我近一周的时间, 😯 我的耐心与时间(最近有点忙)都已经不能让我继续磨蹭下去了。于是,还是决定先用上再说,慢慢进行完善吧。

现在具有的功能是这样的:

  1. 文章和页面的标题使用<h1>,而blog则使用<h2>。这样可以突出文章的重要性吧。
  2. 可以在后台进行导航栏链接的选择。可选择使用页面或分类作为导航栏,并可从页面或分类中去掉一部分页面或分类。
  3. 完美支持GaMerZ系列的WP-PostViews和WP-PageNavi插件。
  4. 多样的页面模板。(例子:有侧栏不开放留言有侧栏开放留言无侧栏不开放留言无侧栏开放留言等)
  5. 不算完美的支持下拉的导航栏。
  6. 完全符合xhtml标准的Share this。
  7. 简单的相似文章。

大概就这样了,基本还是Simple.1主题的那一套,不过应该有比Simple.1更完善一点吧。 :mrgreen:

更多的功能正在开发中,各位给点意见吧。 😀

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/,即可。