编写WordPress短码程序执行Python脚本

python-with-wordpress-short-code

在前几篇文章中,我们介绍了 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"]
...

发表评论

邮箱地址不会被公开。 必填项已用*标注