编写WordPress短码程序执行Python脚本
在前几篇文章中,我们介绍了 WordPress 和 Python 集成的方法,这样可以非常方便地把广泛而且强大的 Python 应用拓展到 WordPress 的环境中。本篇文章介绍另一种方法,就是采用 WordPress 短码的方式执行 Python 脚本程序。
关于如何写 WordPress 短码程序请参看这篇文章的描述。短码的注册和主程序都是放到插件里面的。下面的代码创建一个插件,完成后到后台激活该插件。执行 Python脚本程序采用了 PHP 的 popen 方式。
<?php
/**
* Run Python Script
*
* @package Short Code for Python
*
* Plugin Name: Python shortcode
* Plugin URI:
* Description: Run Python script in WordPress post.
* Version: 1.0
* Author: kflyo
* Author URI: https://www.kflyo.com/about-me
*/
//注册短码 python
add_shortcode( 'python', 'shortcode_python' );
//缺省的python脚本,可以在使用的时候自定义,比如[python file="test.py"]
function shortcode_python( $attributes ) {
$data = shortcode_atts(
array(
'file' => 'hello.py',
),
$attributes
);
//使用PHP的popen打开并执行脚本
$handle = popen( __DIR__ . '/' . $data['file'], 'r' );
$read_buffer = '';
//读取执行后的输出结果
while ( ! feof( $handle ) ) {
$read_buffer .= fread( $handle, 2096 );
}
pclose( $handle );
return $read_buffer;
}
然后编写 Python 脚本程序并放到和插件主程序文件同样的目录下,同时设置好文件的可执行权限。
$chmod a+x hello.py
#!/usr/bin/python3
print("Hello World!")
最后创建一篇文章,然后就可以使用定制好的短码了,不加参数就执行 hello.py。执行结果会显示到文章中短码所在的位置。
...
[python] 或者 [python file="test.py"]
...