WordPress文章和单页中运行PHP代码的方法

众所周知,WordPress是一个非常流行的CMS,它的易用性、用户界面和功能强大,都足矣让我们搭建各种类型的网站,这是面向开发者和程序员的特点,但是作为用户,可以感觉没有什么区别了。

作为一个PHP开发者和博主,有次我想在一篇文章中执行一行PHP代码。默认情况下,你不能在WordPress文章和网页执行PHP(虽然你可以这样做的HTML、CSS和JavaScript)。

由于WordPress不解析PHP的文章和单页,我通常会创建一个PHP文件,然后链接到它在我的文章。

在这两部分组成的系列中,我们将看看如何执行PHP从WordPress的文章和网页。

在本系列的第一部分,我将解释的过程,需要执行PHP在帖子页面。在本系列的第二部分,我们将在一些演示代码要如何真正做到这一点。

工作原理
你知道,include() 或者 require() 用于引入随意执行PHP代码现有模板内。

同样,在WordPress的文章和单页执行PHP,我们将创建一个在我们的WordPress的安装目录下的文件夹包含要执行的PHP代码文件,然后我们将包含文件的文章或者网页使用theshortcodes plugin,我们将在这一系列的教程。

简码插件
这是不可能的使用 include()或 require()功能包括和执行PHP文件后类型在WordPress因为代码是不解析PHP时,通过自定义WordPress默认的TinyMCE编辑器,然而,使用短代码,我们可以做到这一点。

演示如何做到这一点,让我们创建一个插件。

1、引入插件的头部

插件头部,这是一个PHP的注释块,这是允许WordPress识别和读取我们的插件。

<?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/
*/
接下来,我们调用theadd_shortcode()函数。这个函数负责在实际的WordPress中注册我们的短代码。

它接受两个参数:短代码标签和回调函数。

add_shortcode( 'phpcode', 'php_include' );
最后,简码的回调函数。

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();
}
看着短码函数 function php_include,你可以看到简码包括文件PHP内容位于wp-content/uploads。

我们可以通过编程来获得使用wordpress wp_upload_dir()辅助功能。

对于商家的语法是 [phpcode file="dance"] 这里的价值属性file是PHP文件将包括位于/wp-content/uploads/php-content文件夹

使用简码插件执行PHP
演示如何短码功能,我们将创建一个简单的工具,改写字向后strrev()供电。

下面是被包含在WordPress文章工具代码。

<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>';
}
创建一个PHP文件/wp-content/uploads/php-content并保存在它上面的代码片段。让我们把文件wordsbackward.php。

执行PHP文件,添加短码[phpcode file="wordsbackward"]的文章或页面。

在浏览器中预览后,你应该看到执行的PHP代码,如下图所示。

结论

它指出,如果你运行一个多作者的博客是非常重要的,给作者后执行PHP的特权可以安全的风险,所以你要确保有到位的安全措施。

对许多人来说,要创建一个插件,利用简码,单独的文件,所以要复杂得多,说,将代码直接添加到WordPress编辑器。在本系列的下一部分中,我们将创建一个更先进的插件,可以让我们做所有的文件管理在WordPress仪表盘版。

时间: 2024-09-19 20:40:46

WordPress文章和单页中运行PHP代码的方法的相关文章

python实现在每个独立进程中运行一个函数的方法_python

本文实例讲述了python实现在每个独立进程中运行一个函数的方法.分享给大家供大家参考.具体分析如下: 这个简单的函数可以同于在单独的进程中运行另外一个函数,这对于释放内存资源非常有用 #!/usr/bin/env python from __future__ import with_statement import os, cPickle def run_in_separate_process(func, *args, **kwds): pread, pwrite = os.pipe() pi

javascript实现在网页中运行本地程序的方法_javascript技巧

本文实例讲述了javascript实现在网页中运行本地程序的方法.分享给大家供大家参考,具体如下: <input onclick="exec('notepad.exe')" value="执行noteppad.exe" type="button"> <input onclick="exec('cmd.exe')" value="执行cmd.exe" type="button&qu

不使用浏览器运行javascript代码的方法

用js写一段小程序,但是又觉得使用浏览器去运行挺麻烦的,下面为大家介绍下如何使用java程序调用javascript程序,有类似需求的朋友可以参考下哈,希望对大家有所帮助   有时候我们想用js写一段小程序,但是又觉得使用浏览器去运行挺麻烦的,那么现在我们来看一下如何使用java程序调用javascript程序,这样就可以不借助浏览器就可执行js代码了. 之 所以有这个需求是因为这几天在做的一个项目中碰到了这样的问题,我有一个javascript脚本,但是这个项目的其他代码都是用CC++写的,不

不使用浏览器运行javascript代码的方法_javascript技巧

有时候我们想用js写一段小程序,但是又觉得使用浏览器去运行挺麻烦的,那么现在我们来看一下如何使用java程序调用javascript程序,这样就可以不借助浏览器就可执行js代码了. 之所以有这个需求是因为这几天在做的一个项目中碰到了这样的问题,我有一个javascript脚本,但是这个项目的其他代码都是用C\C++写的,不想将js代码转成C,感觉太麻烦了,所以就想如果可以在C下面直接调用javascript代码就好了,或者在shell中有一个可以不借助浏览器就可以直接运行js代码的工具也行.现在

WordPress 实现文章或面页内容太长分页的方法

WordPress系统是内置分页功能的,要实现它极其简单,只需要在你想要分页的地方加入下面的代码即可(注意,是在文本编辑模式下): <!?nextpage?> 但还有一个问题.要让这个代码真正能够实现其分页功能,还需要你所使用的Wordpress主题支持,Wordpress的默认主题是支持的,如果你的主题不支持,那解决方法也很简单,找到你主题文件内的 single.php 里的下面这行代码: <?php the_content(); ?> 在这段代码下面加上: <?php w

wordpress实现评论翻页、评论按时间顺序方法

因为本博客的留言板用的是文章模版,那么留言自然也就是评论系统了,今天偶然发现评论这块特难看还不是按时间顺序走的,那么简单的倒腾了下,现在拿出来给大家分享下!是网上不少办法的集合体!具体效果如下图: 一.让评论按时间顺序排列,最新评论在最前面 1.在后台-设置-讨论里 按下图设置: 2.到程序的/wp-includes/下找到comment-template.php文件做以下修改 用ctrl+F查找  代码如下 复制代码 ORDER BY comment_date_gmt 将其改为  代码如下 复

网页中运行JS代码

<SCRIPT> function Preview(obj) {   var TestWin=open('');   TestWin.document.write(obj.value); } //欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载. function copyCode(obj) {     var rng = document.body.createTextRange();     rn

在Apache服务器中运行CGI程序的方法_Linux

关于apache与CGI在这里就不解释了. 1.apache下载地址:http://www.apache.org,下面以2.0.63为例介绍运行CGI程序的配置. 2.下载Windows下的Perl解释器ActivePerl,官方网站:http://www.activestate.com/,最新版本ActivePerl-    5.10.0.1003,假设安装路径为c:\Perl. 3.修改apache的配置文件httpd.conf: <Directory "D:/Apache Group

java实现单链表中是否有环的方法详解_java

这是一道微软经典笔试题,就是两个指针h1,h2都从头开始遍历单链表,h1每次向前走1步,h2每次向前走2步,如果h2碰到了NULL,说明环不存在:如果h2碰到本应在身后的h1说明环存在(也就是发生了套圈).     如果环不存在,一定是h2先碰到NULL:     如果环存在,h2与h1一定会相遇,而且相遇的点在环内:h2比h1遍历的速度快,一定不会在开始的那段非环的链表部分相遇,所以当h1,h2都进入环后,h2每次移动都会使h2与h1之间在前进方向上的差距缩小1,最后,会使得h1和h2差距减少