本来在做极光监测页面的时候就需要执行php代码,但最后还是给我用最土鳖的办法绕过去了(在别的地方cron一个php,定时生成几个gif图像,然后引用之)。结果今天折腾实验室的降雨预报页面的时候,总算绕不过去了。本来想着说这应该是个小意思,我装个exec-php不就可以了嘛。结果exec-php竟然还要折腾配套的各种东西,搞到最后竟然还不能用,真是郁闷。于是只好查查看有没有替代的方法。幸好万能的Wordpress还是可以用不太麻烦的方法解决这一难题的,这一方法就是shortcode,适用于规模不大的php程序。

  简单地说就是把你的php程序植入到主题里面,然后在文章里用形如

[my-shortcode type="dog"]

的形式调用之。

  首先修改一下主题里的function.php,在末尾添加这一行:

include_once(“shortcode.php”);

  我们所有的代码就放在shortcode.php里面。当然你想全写在function.php里也没问题。

  要把一个php程序写到shortcode里很容易,只要把它弄成一个函数(如果它还不是函数的话),然后注册这个函数即可。比如下面的shortcode.php

function my-shortcode-function($atts){
	extract(shortcode_atts(array('type' => 'cat'),$atts)); // 设定参数type的默认值为cat
	if ($atts['type']=='cat') echo "Miao";
	elseif ($atts['type']=='dog') echo "Wang"; // 函数其他部分
	return;
}
add_shortcode('my-shortcode', 'my-shortcode-function'); // 注册my-shortcode-function到my-shortcode

  于是一个shortcode就做好了。如果我想让它返回Wang,只需要在写文章的时候用

[my-shortcode type="dog"]

就可以了。