WordPress 的 block editor 真的难用至极

装上 Classic Editor 保平安

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

WordPress 升級中的 500 錯誤解決

搬瓦工的 OpenVZ 方案的 VPS 不能再繼續續費,只能趕緊搬家。
一切完備了,訪問首頁死活給我一個 500 錯誤。
打開 nginx 的錯誤日志,一堆這樣的錯誤

Parse error: syntax error, unexpected ‘new’ (T_NEW) in /var/www/bingu.net/wp-content/plugins/exec-php/exec-php.php on line 80

找了找原因,原來是 PHP7 不再支持用 =& 獲取一個對象的實例,也就是下面這行已經不能這麽寫了,直接把這個插件給刪了,搞定。

$GLOBALS['g_execphp_manager'] =&amp; new ExecPhp_Manager();

ref: PHP 7 and WordPress: How to FIX unexpected ‘new’ (T_NEW) error

Nexus 7 5.1.1

将闲置有段时间的Nexus 7拿出来刷到最新的Android 5.1.1。
Android 5真心漂亮,7寸的握持感比iPad mini好太多。
2012年的Nexus 7在Android 5下还是略卡。

买了VPN,主要用来使用Google家的app好了。 😆

Nexus 7 Android 5

将托管于 gitbook 的在线图书转换成 pdf

最近打算折腾下 Android APP,辗转找到 ”Android官方培训课程中文版“。这是托管于 gitbook 的网络热心人士翻译的 Android 官方培训课程,他们虽然提供 pdf 版下载,但提供的版本低,字体丑。看不过眼,于是想自己转换个最新版本的。这一玩竟然玩了一个星期,最后发现跟”糟糕的网络“以及 gitbook-pdf 算是白玩了一星期,因为根本就不是跟他们玩的啊!为避免各位像我这般折腾,这里记录下如何正确地”将托管于 gitbook 的在线图书转换成 pdf“。

使用的环境是:ubuntu 14.04,git 1.9.1

首先,装上需要用到的工具 gitbook,calibre

$ apt-get install nodejs calibre # gitbook 需用 npm 安装,所以装上 nodejs
$ npm install gitbook -g

OK,看看所需工具的版本

$ gitbook --version;ebook-convert --version
1.5.0
ebook-convert (calibre 1.28.0)
Created by: Kovid Goyal <kovid@kovidgoyal.net>

Perfect!这下可以进行转换了。

$ git clone https://github.com/kesenhoo/android-training-course-in-chinese.git # 先克隆一份 "Android官方培训课程中文版" 的 Markdown 文档,其实我是在 vps 克隆后再打包下载到本地的,我大局域网环境太糟糕了。
$ gitbook pdf ./android-training-course-in-chinese # 开始转换 pdf

转换颇费时间,我是输完最后一条命令就上床睡觉了,早上起来 book.pdf 就妥妥地出现在 android-training-course-in-chinese 文件夹里了。

最后附上我编译的Android官方培训课程中文版 V0.9.1 PDF
顺带把多手转换的The Swift Programming Luanguage 中文版也附上。

enjoy

Google Domains 邀请 5 枚

google-domains-invitations

Google Domains 邀请 5 枚,谷歌域名现在仅在美国提供服务。

留言区中,Email 栏是用来填写 email 的,Name,Website 和 Comment 等栏不是用来填写 email 的。

Google inbox邀请5枚

google-inbox-invitations
Google inbox邀请5枚,新鲜出炉。需要的可留言啊。

GitHub学生开发者礼包

总之就是GitHub联合多个网络公司送大礼吧。
其中最好的大概是DigitalOcean的100刀的购买额了,5刀每月的VPS能免费用20个月啊,20个月。。。

GitHub Student Developer Pack ← 这是申请页。需要有edu后缀的邮箱进行申请,申请好后,回到该页面点击DigitalOcean那里的一个链接(好吧,我已经点击了,已经找不到这个链接了。)就会出现那个Coupon了!

DigitalOcean ← 点击这个链接申请DigitalOcean还能多10刀哦。对了,DigitalOcean要用Paypal或者信用卡支付5刀或以上才能激活这里的110刀购买额!