Fixed NextGenGallery 0 images were uploaded error

Nggallery 0 images were uploaded
Nggallery 0 images were uploaded

不知从何版本起,NextGenGallery 插件在我的 WordPress 上就不工作了,主要症状是:

  • 后台无法在 Gallery 里上传图片,显示 “Upload complete. 0 images were uploaded.”(WordPress 自身的 Media 上传正常)。
  • 后台无法批量导入图片,服务器的文件夹根本就不显示。
  • 已有的 Gallery 在前台只能显示第一张图,点下一张图就是 404 错误。

这个问题困扰了我约有半年。期间发现把 Permalinks 改为 Default 模式能让 NextGenGallery 恢复正常,但我不可能为了 NextGenGallery 修改 Permalinks 啊,只好任由这个问题存在。所幸迄今为止只有 5 galleries,而且都不怎么重要,所以这个问题不突出。

上个周末突然犟了一下,我觉得不该卡在这个问题无从下手啊,调用 google N 多次,终于在一个角落里给我找到一点端倪,再做了 N 多次试验,得出的结论是此问题在 PHP installed as an Apache module 时不存在,我恰用的是 Nginx,罪魁祸首是 fastcgi_param 没弄好。

出现此类问题是小概率事件,即使是一个不完善的 fastcgi_param 配置,我的 Nginx 也让大部分 PHP 跑了多年没出其他问题。NextGenGallery 也有一定责任,使用了一种不推荐的环境变量,在 PHP installed as an Apache module 下不会激发这个 bug,但在 Ngnix + 不完善的 fastcgi_param 会。而我用的不完善的 fastcgi_param,我相信很多人都在用,所以有一定的普遍性。

言归正传,怎么改?

有人说把 NextGenGallery 的 class.router.php 的 function get_request_uri 的 if (isset($_SERVER[‘PATH_INFO’])) 改为 if (empty($_SERVER[‘PATH_INFO’])),确实能奏效,但我认为不理想。因为:

  • NextGenGallery 虽有错,但大错不在它,而在 Nginx 没配好。
  • 这个问题被反应到 NextGenGallery 开发者很久了,期间 NextGenGallery 升级了无数次,也没见他修正此 bug,可能他认为此 bug 非 bug。

我认为解决问题的根本办法是在 fastcgi_param 文件里,把通常人用的

fastcgi_param  PATH_INFO          $fastcgi_path_info;

改为

fastcgi_param  PATH_INFO          $fastcgi_path_info if_not_empty;

qTranslate Update

我很喜欢qTranslate这个插件,尽管我没在这个blog上使用。

qTranslate更新很快,最近几次我注意到每次WordPress一有更新,qTranslate随后就有更新。

但我就不明白了——每次WordPress更新后,老版本的qTranslate就工作不正常了。编辑时,qTranslate is disabled(当然这也不是什么大不了的缺陷,反正我更习惯于直接写代码)。非得qTranslate出一个更新,这个毛病才能解决。

是不是秦谦老兄写的qTransalte不太符合WordPress Plugin规范?

WordPress Commerce

在WordPress基础上建设网店不是不可以,但毕竟blog和e-Commerce各有侧重。要做e-Commerce,自然而然就要求设置产品属性,相关产品链接,库存管理,价格管理,客户管理,销售报告等等。WordPress装个插件,如Instinct Entertainment e-Commerce plugin (WP Shopping Cart) for WordPress,做得相当不错,能完成基本的e-Commerce需求。

但WP Shopping Cart只能是个轻量级的e-Commerce解决方案。它至少无法:

  1. 批处理
  2. 动态过滤产品 (按自定义属性)
  3. 产品套装模型
  4. 复杂价格政策
  5. 客户分组
  6. 自定义报告

在WP Shopping Cart基础上改进一下,让它完成以上功能也不是不可能的。但我认为,如果你有以上需求,选择WP Shopping Cart就是个错误(谨记:WP Shopping Cart只能是个轻量级的e-Commerce解决方案)。

此外,我在考虑:装了WP Shopping Cart plugin,所有的产品页面都是通过一个WordPress页面 (默认叫product-page) 调用,产品页面都是product-page子页面,本身不利于搜索引擎优化。而且,WordPress自身或WordPress SEO Plugins带来的搜索引擎友好的众多特性,产品页面无法享受到。虽然WP Shopping Cart针对SEO做了很多考虑,但WordPress SEO是众人拾柴,WP Shopping Cart SEO features无法与WordPress SEO features匹敌。

其实大部分企业网站并没有购物车需求,只是一个简单得不能再简单的产品或服务展示厅(brochure site or showrooms)。如果WordPress category, tag, cusom field, search应用得恰当,不借助于e-Commerce plugin,也能用WordPress组建一个brochure site。如想要SEO,一个post对应一个产品是最佳方案。设计一个brochure theme就够了。

找来找去,我没找到一个像样的 (适合摆放产品的) brochure theme。

WP Shopping Cart Not Support utf-8

Recommended by WordPress, I installed one of business blogging plugin – WP Shopping Cart. Although I don’t think it’s a good idea to sell anything on this blog, I wanna try the plugin by categorising under WP Shopping Cart my investigation to hundred brands in Bicester Village.

To my disappointment, this plugin (ver 3.6 beta 7) does not support utf-8. I have to leave the plugin there. I don’t wanna do modification to this plugin by myself.

Why Google Analytics Tracking Code Was Not Included In Source Code?

这个博客从一开始就装了Google Analytics for WordPress,但我在前台页面的源代码里总看不到tracking code,我为解决这个问题陆陆续续花了不少时间找原因,把plugin反复deactivate and activate,甚至卸载plugin再重装、切换theme,都没见source code 包含任何analytics的字眼。

我在wordpress.org寻求前人的经验,也有人说Google Analytics for WordPress这个plugin无法工作。他最后是放弃了Google Analytics for WordPress,还推荐了另一个google analytics plugin叫sem google analytics。但是我见Google Analytics for WordPress功能远比sem google analytics强大,不舍得放弃。

试装sem google analytics后,我查看了前台页面的源代码,代码里有一行注释,说sem google analytics不追踪admin登录状态。一语惊醒梦中人!同理,我的Google Analytics for WordPress一直就是正常工作着的,只是我一直在admin登录状态去查看源代码,也就无法看到tracking code,但Google Analytics for WordPress一直没给任何提示说明这一点,导致我瞎折腾,这是Google Analytics for WordPress做得不够好的地方。

花了很多时间,总算搞明白一个粗显的道理:Google Analytics for WordPress不追踪admin登录状态

wordpress title不见了

昨天在公司的blog上做搜索引擎优化,做到后来既然把blog homepage的title弄没了,一时没找到原因。

今天在这个自己的blog上只想要添加一个analytics,我用的是google analytics for wordpress plugin 2.0,当我把track帐号输入以后,发现title又一次消失了。title的消失是不是由这个plugin引起的?这有待进一步试验。可现在头痛的问题是:无论我删除了track account,还是deactivate plugin,title还是不回来。难道我错怪google analytics for wordpress plugin?