文章分类: WordPress

全世界竟然有超过40%的网站是基于WordPress创建的!
博主对WordPress长期深入研究,并有着大量的实践案例,总结了大量的博文笔记,是一位WordPress“硬核”玩家。
本博客不做泛泛的插件、主题分享,博主致力于WordPress深入开发技术的研究,主张牢牢掌握WP核心的开发能力,尽可能脱离插件和主题的束缚。

项目中提炼出来的一些WPML实用函数

最近的几个项目都开始用WPML,一边做一边查询官方文档和论坛,提炼出一些实用函数,记录在此。

获得当前页面的language Code

1
echo ICL_LANGUAGE_CODE;

这个变量直接输出当前页面语言编码,比如默认的英语就是“en”,法语就是“fr”。
需要知道,国际标准语言代码中,简体中文和繁体中文分别是zh-hans和zh-hant,WPML遵循此标准。建议不要在WPML内自定义language code,这将降低WPML和其他插件的兼容可能,增加踩坑概率。

获取指定页面ID和language code修正后的ID

WPML的保存机制是为每个语言单独生成一篇文章,因此要调用特定语言的文章,只要知道它对应其他任何一个语种的一篇文章的ID就可以用这个函数输出:

1
icl_object_id(ID, type, return_original_if_missing,language_code);

icl_object_id的官方文档:http://wpml.org/documentation/support/creating-multilingual-wordpress-themes/language-dependent-ids/ 查看详细 »

WordPress分页插件WP-PageNavi和翻译插件WPML的兼容性问题

首先来介绍一下WP-PageNavi,这是一款免费的文章分页插件,它轻便小巧,大量的WordPress网站都在用它。如果你用过一款统计和显示页面访问量的插件WP-PostViews的话,你就会知道这两款插件的作者是同一个人。似乎这位作者很喜欢开发一些小巧实用的插件:
WP-PageNavi和翻译插件WPML的兼容性问题 查看详细 »

WooCommerce的索引页面模板archive-product.php无法被调用问题

最近在用WordPress+WooCommerce开发一个商城网站,一步一步抽丝剥茧的尝试修改着WooCommerce提供的默认主题。其实WooCommerce的主题定制逻辑挺简单,把WooCommerce插件中的templates文件夹整个复制到自己的主题中,重命名WooCommerce,即可任意修改。购物车、产品内页、帐号管理等页面都能顺利修改。唯独商品索引页面,我在archive-product.php反复尝试修改覆盖源文件,都没效果。

最后谷歌找到答案,解决方法如下: 查看详细 »

WordPress文章多重排序的实现方法

在WordPress网站开发过程中,有时候我们需要对文章/自定义文章类别(这里统称为文章)进行一些自定义排序,以下是我常用的自定义排序输出的方法:

1
2
3
4
5
6
7
8
9
10
$myposts = get_posts( array( 
	'numberposts' => 50, 
	'post_type' => 'hotels', //自定义的文章类型
	'orderby' => 'meta_value', //按照自定义字段排序
	'meta_key' => 'hotel_country',//排序的自定义字段名为hotel_country
	'order' => 'ASC'
) );
foreach( $myposts as $post ) {
...
}

查看详细 »

WordPress后台定制-在自定义字段面板中调用媒体/图片上传对话框

在WordPress自定义字段面板中,有时候我们需要上传图片,或者附件,并且获取它的URL作为这个自定义字段的值。这个属于WordPress比较高级的后台定制了,但却是很常见的。很多插件都提供了解决方案,今天我把代码扒出来,可以直接用在主题的后台中。
把原本自定义字段的的input标签换成如下这段代码: 查看详细 »

WordPress文章分类、自定义分类、标签排序插件推荐

WordPress发展到当今的4.x版,居然还没有提供文章分类、标签等自定义排序的功能。也许开发WP的大佬们并不觉得这些排序是什么重要功能,亦或者这个功能的开发实在太过简单,被当作留给插件开发者们的小菜而一直没有加入WP的主程序中?言归正传,我已经在很多项目中接到自定义文章分类排序的需求了,这里介绍一下我使用的插件 – Custom Taxonomy Order NE
WordPress文章分类、自定义分类、标签排序插件推荐-Custom Taxonomy Order NE
查看详细 »

WordPress英文版切换为中文版步骤,附4.01简体中文语言包下载

一直都习惯用英文版的WordPress,原因是一直都去英文官网找插件和看文档,而且官网的英文原版也更新得较快,比如最近官网的英文版已经更新到4.1版了,而中文版目前还停留在4.01。不过有时候也会需要用中文版,比如要开放后台给不习惯英文界面的人…好在WordPress语言切换还是比较容易的。 查看详细 »

WordPress网站在Azure环境下无法使用SESSION?

今天又在刚从Linux搬到Windows Azure的WordPress网站们身上发现一个毛病,那就是自己写的SESSION都不起作用了。这直接导致了网站的登录功能没法使用。能支持PHP,我就不信Azure会连SESSION这种最基本的东西都不支持。搜索了一下相关问题,有的说要设置cache目录;还有说要修改web.config文件,加一堆XML节点…其实都在绕弯路,最后被我找到一个WP插件(好吧,我承认太没技术含量了Orz),名叫Simple Session Support。安装了一下这个插件问题就得到了解决,网站能正常登录,并且把用户信息读取到SESSION中了。

打开Simple Session Support插件的安装目录,原来只有一个php文件,而且很小。它提供了两个建立SESSION的函数,但都没有加到钩子里去。反而倒是有一个初始启动SESSION的小函数吸引了我的注意。原来在Azure下需要执行一下session_start()命令来才能开始使用SESSION。 查看详细 »

WordPress网站搬家、数据库升级心得

这两天忙着给公司的一批WordPress网站搬家,碰到了不少以前没遇到过的麻烦,总结一下解决问题的经验。WordPress网站搬家除了要把wp-content的文件转移之外,如果碰到数据库设置的变更,就比较麻烦了。在旧空间上,我们的WP是每个站独享一个数据库;在新的主机上由于权限的限制,好几个网站都必须共享一个数据库。解决思路是要在新的空间里给每个WP网站设置不同的prefix,思路很简单,但实际操作的时候还是碰到了不少问题。 查看详细 »