月度归档:11月 2020

WordPress+WPML通过AJAX读取指定语言的文章

WordPress+WPML多语言网站中,如果用get_posts / WP_Query这这些方法返回文章,默认都会返回当前页面所在的语言的文章。如果要跳出当前页面指定的语言,或者如果当前页面并不在WPML管理下,没有指定语言,那么get_posts / WP_Query默认返回的是网站默认语言的文章。

假如我们网站默认语言是英语,但还有第二种语言是中文,我想在英语的页面只显示中文文章,WPML有一个快捷办法:

global $sitepress;
$lang = "zh-hans";
$sitepress->switch_lang( $lang );

通过$sitepress->switch_lang方法,可以切换当前页面的默认循环语言。

有了这个方法,我们也可以在WP的Ajax接口中切换语言了。本文记录一个通过Ajax接口获取文章的范例。 查看详细 »

用WordPress建站,我是怎么选主机的

本人深度使用WordPress开发网站、微信小程序加起来有七八年了,用WP完成的项目上百个。说一下我对主机的选择。

分两种情况,中国大陆内(需要备案),中国大陆外(含港澳台,不备案)。

中国大陆内

只推荐阿里云。我曾用过新网、微软Azure(国内叫做世纪互联)、阳光互联、网宿 这几家的云主机。本人直观感受,这几家和阿里云比,都是××。

国内建站选主机服务商,主要考虑的事情有3点:
1. 备案平台方便高效;
2. 云端网站后台功能全,用户体验合理;
3. 主机运行稳定。

备案一直是小白站长头疼的事。且现在备案的确越来越麻烦,如果你选其他云服务商,且你是个新手没有经历过备案,其备案流程和操作能让你恶心很长时间。迫于管局的压力,阿里云的备案现在也在收紧限制,从以前的随便申请,到现在一台ECS必须买3个月才能提供5个备案名额,且流程每年都在加长。但是阿里云自身服务规范且非常高效,其备案流程真的完胜国内任何一家其他服务商,没有例外。

云端网站后台功能,阿里云是最全的,在国内也没有例外。这个东西是基础建设,需要巨大的投入,比得是公司实力,这一点目前就没有任何一家能和阿里云相比了。你去新网、电信云、或者任何一家其他的提供云服务的网站注册一下看看,和阿里云比真的让人失去使用愿望。不过我也去腾讯云看过,虽然后起,但毕竟背靠大厂,而且有微信小程序生态圈的加持,腾讯云其实可以作为第二选择,以后能不能赶超阿里云,还不好说。 查看详细 »

WordPress通过Rest API自定义附件上传接口

有没有想过用WordPress来建立自己的文件存储空间,当作自己的网盘使用?这个业务实现的主要逻辑其实就是自己写一个Rest API接口上传文件到WP的媒体库中。

首先我们需要安装一个插件,这个插件很小,只是给网站后台登录提供Basic认证,并不是用来拓展业务接口的。开通了Basic认证方式,我们才有途径获得使用Rest API更新网站内容的权限,否则Rest API只提供读取权限。插件名称叫做JSON Basic Authentication,官方下载地址:https://github.com/WP-API/Basic-Auth

要做接口,就先创建endpoint。这次我创建两个,一个是用来转存网上的文件的,一个是用来自己上传文件的。

add_action( 'rest_api_init', function () {
	//转存
	register_rest_route( 'brain1981/v1', '/catch/', array(
		'methods' => 'POST',
		'callback' => 'brain1981_api_post_catch',
	) );
	//上传
	register_rest_route( 'brain1981/v1', '/stream/', array(
		'methods' => 'POST',
		'callback' => 'brain1981_api_post_stream',
	) );
});

查看详细 »