专栏首页DeveWork在WordPress 的文章或页面中运行PHP 代码

在WordPress 的文章或页面中运行PHP 代码

如果你在编辑器中输入PHP 代码,默认的话WordPress 不会为你执行这段代码的——只会文本方式输出。Tutsplus 上有一篇文章以插件的方式告知我们实现在WordPress 的文章或页面中运行PHP 代码的方法,下面介绍下。

原理小介绍

懂php 的都知道,PHP中载入其他PHP文件可以用include() 或者 require() 函数,因此为了实现在WordPress 的文章或页面中运行PHP 代码,我们可以将打算运行的代码写入一个额外的PHP 文件中,放在某个目录下,通过某种机制调用。英文原文中采用的是短代码方式,为了方便,作者直接做成了插件。

插件代码如下:

<?php /* Plugin Name: Run PHP code in Post & Page Plugin URI: http://code.tutsplus.com Description: Run PHP code in WordPress Author: Agbonghama Collins Version: 1.0 Author URI: http://tech4sky.com/ */   function php_include( $attr ) { $file = $attr['file']; $upload_dir = wp_upload_dir(); $folder = $upload_dir['basedir'] . '/php-content'. "/$file.php"; ob_start(); include ( $folder ); return ob_get_clean(); } add_shortcode( 'phpcode', 'php_include' ); ?>

上诉代码中的变量 $upload_dir['basedir'] 指代的是WordPress 中多媒体文件的上传路径(默认为/wp-content/uploads/),接下来通过一个实例说明如何使用这个短代码插件。

比如说我打算在文章中运行下面这段php代码,那么我就将这段代码放到一个php 文件中,命名为ordsbackward.php 吧!

<form method="post"> <textarea name="string"><?php echo ( isset( $_POST['string'] ) ) ? $_POST['string'] : null ;?></textarea> <br /> <input type="submit" name="submit" value="Reverse"/> </form>   <?php if ( isset( $_POST['submit'] ) && empty( $_POST['string'] ) ) { echo "Field should not be left empty"; } elseif ( isset( $_POST['submit'] ) && ( $_POST['string'] ) ) { echo '<div>Copy Result</div>'; echo '<textarea>'; echo htmlspecialchars( strrev( $_POST['string'] ) ); echo '</textarea>'; }

然后在多媒体文件的上传路径(默认为/wp-content/uploads/)新建一个php-content 文件夹(集中放这些php 文件,方便管理), 将 wordsbackward.php 丢到里面去。

那么此时,在WordPress 编辑器中写文章时候用下面的短代码插入短代码:

[phpcode file="wordsbackward"]

即可运行相应的wordsbackward.php文件,如图:

have fun!

PS:Tutsplus 上的原文不知为何已经被删除,Jeff 是在RSS 阅读器上保留下的,但还是感谢原作者。经过亲自测试代码可行。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • WordPress自定义栏目运用实例III:添加原创/转载文章不同版权声明

    这里是WordPress自定义栏目运用实例系列第三讲,为大家带来用自定义栏目添加原创/转载文章不同版权声明。跟本上,这个与之前的《WordPress自定义栏目运...

    Jeff
  • 代码重写WordPress网页标题为“原网页标题|网站名”的形式

    为了那个所谓的搜索引擎优化(SEO),为了更高的收录,为了更多的流量,我们需要对WordPress做许多工作,重写WordPress网页标题就是其中之一,如果你...

    Jeff
  • 360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补

    今天头脑一热到360安全检测那里去为自己的网站进行安全扫描了一番。上次扫描还是一年前,当初扫描一个网站是 94 分,那时候还不懂代码,就这么挂着,被360 公开...

    Jeff
  • PHP 5.3向更高版本迁移之新特性

    需要注意的是,trait的继承顺序: 来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法 当多个trait被同一个类使用的时候...

    luxixing
  • python调用PHP

    py3study
  • php & apache2 &操作系统之间的一些黑魔法

    做了一个CTF题目,遇到了一些有趣的东西,所以写了这篇文章记录了一下。 但是我却不明白造成这个问题的原因在哪里,所以不知道给文章起什么标题,就姑且叫这个非常宽泛...

    无心道人
  • 关于PHP流不得不说的那些事

    相信不少PHP开发者或多或少都见过类似于 "php://input" 或者 "php://output" 这样的内容,很多人都知道这两个的作用一个是接收的 PO...

    硬核项目经理
  • PHP 必备居家命令

    7、php -l 最有用常用的命令,修改文件定位错误的时候,检测运行正常,结果准备了很多步骤,结果发现语法错误。

    yunfeiyun
  • 关于PHP的cli模式

    用户2475223
  • 代码审计之php.ini配置详解

    apache在启动时php.ini被读取。对于服务器模块版本的php,仅在web服务器启动时读取一次。对于CGI和CLI版本,每次调用都会被读取

    FB客服

扫码关注云+社区

领取腾讯云代金券