在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 阅读器上保留下的,但还是感谢原作者。经过亲自测试代码可行。
- Android 2.x中使用actionbar - Actionbarsherlock
- Python-操作Memcache、Redis、RabbitMQ、
- 推荐[搜索引擎架构]的几篇文章
- 中小型商城系统中的分类/产品属性/扩展属性的数据库设计
- Linux下FTP虚拟账号环境部署总结
- Replace方法与正则表达式的性能比较
- 由索引节点(inode)爆满引发的问题
- As3.0中的位图(Bitmap/BitmapData)编程
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)--负载均衡marathon-lb
- Docker集群管理工具-Kubernetes部署记录
- AS3:小游戏“贪吃蛇”的实现
- 超实用的8个Linux命令行性能监测工具
- 用javascript替换URL中的参数值
- Gitblit版本服务器环境部署记录
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android UI控件Switch的使用方法
- Android如何读写CSV文件方法示例
- Android 静默安装和卸载的方法
- Android自定义单例AlertDialog详解
- Android Build类的详解及简单实例
- Android使用CrashHandler来获取应用的crash信息的方法
- 数据魔术师小白零基础实现简单人脸识别
- Android编程实现XML解析与保存的三种方法详解
- 浅谈关于Android路由的实现
- Android中EditText禁止输入表情的实例代码
- Android仿微信右滑返回功能的实例代码
- 算法复现·推荐算法 | DeepFM for CTR Prediction
- Android 中Notification弹出通知实现代码
- Android编程实现添加低电流提醒功能的方法
- Android头像上传功能的实现代码(获取头像加剪切)