如何编写一个 WordPress插件

如何自己动手写一个简单的 WordPress 插件,此插件是根据官方提供的 Hello Dolly 改进而来。要想读懂本文中的内容,你需要对 WordPress 的基本功能和 PHP 编程有一定的了解。

那么开始

首先我们先起一个插件的名字,插件的名字应该是一个独一无二的。如果不确定这个名字是否被使用过,你可以在后台搜索一下是否已经被使用。为了方便,我们使用 Hello World 作为插件的名字。

下一步就是根据插件的名字,去到 wp-content/plugins/ 目录下,创建插件的文件夹和一个 PHP 主文件。插件文件夹的名称通常和插件 PHP 文件的名称相同,例如我们的插件的名字叫做 “Hello World”,那么插件的文件夹叫做 “hello-world” 而 PHP 主文件的名字就可以是 “hello-world.php”,目录结构如下:

/-- wp-content/plugins/     /-- hello-world/        /-- hello-world.php

插件信息头

WordPress 通过插件信息头识别插件的存在,并把它加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。

向插件的主文件添加如下的代码:

<?php/** * Plugin Name: Hello World(我们定义的插件名) * Plugin URI: http://icodechef.com(插件的主页) * Description: 这里填入插件的描述 * Version: 1.0.0 * Author: icodechef * Author URI: http://icodechef.com */

我们可以看到,插件信息是以 PHP 的注释出现的。

开始编写插件

首先,了解一下 WordPress 的 “插件钩子” 这个概念,”插件钩子” 的工作原理简单来说,就是运行到 PHP 文件某个位置,然后在这个位置不断执行相关的函数。例如,拿 wp_head 这个钩子来说:

添加函数到 wp_head 这个钩子:

function foo() {    // code...} function bar() {    // code...} add_action( 'wp_head', 'foo' );add_action( 'wp_head', 'bar' );

当 WordPress 运行到 wp_head 所定义的这个位置时,就会分别执行 foo(), bar()。

好了,我们回到编写插件中,首先定义创建一个叫做 hello_world_get_words 的函数,程序的代码非常简单,就是随机输出一些问候语,代码如下:

function hello_world_get_words() {    $greetings = array(        'Hello World',        'How’s it going?',        'What’s up?',        'How’s everything?',        'Nice to see you',        'Long time no see',        'How do you do?',        'Are you OK?',        'Yo!',        'Howdy!',        'Hiya!',        'G’day mate!',    );     return wptexturize( $greetings[ mt_rand( 0, count( $greetings ) - 1 ) ] );}

再创建一个 hello_world 函数,获取问候语并格式化输出内容。

function hello_world() {    $chosen = hello_world_get_words();    echo "<p id='world'>" . get_bloginfo( 'name', 'display' ) . " 跟你说:{$chosen}</p>";} add_action( 'wp_footer', 'hello_world' );

这一行 add_action( ‘wp_footer’, ‘hello_world’ ); 表示在页脚执行 hello_world 这个函数。

打印样式

我们还可以为输出定义样式(css)

function hello_world_css() {    echo "    <style type='text/css'>    #world {        position: fixed;        bottom: 0;        right:0;        background-color:#f8f8f8;             padding:15px 20px;        margin: 0;        font-size: 15px;        z-index:1000;        border:1px soild #999;        border-radius: 4px;        color: #da4453;    }    </style>    ";} add_action( 'wp_head', 'hello_world_css' );

这里不多作解释了。

完整代码:

<?php/*Plugin Name: Hello worldPlugin URI: https://github.com/icodechef/hello-worldDescription: just a pluginAuthor: iCodeChefVersion: 1.0Author URI: http://icodechef.comLicense: MIT*/ function hello_world_get_words() {    $greetings = array(        'Hello World',        'How’s it going?',        'What’s up?',        'How’s everything?',        'Nice to see you',        'Long time no see',        'How do you do?',        'Are you OK?',        'Yo!',        'Howdy!',        'Hiya!',        'G’day mate!',    );     return wptexturize( $greetings[ mt_rand( 0, count( $greetings ) - 1 ) ] );} function hello_world() {    $chosen = hello_world_get_words();    echo "<p id='world'>" . get_bloginfo( 'name', 'display' ) . " 跟你说:{$chosen}</p>";} add_action( 'wp_footer', 'hello_world' ); function hello_world_css() {    echo "    <style type='text/css'>    #world {        position: fixed;        bottom: 0;        right:0;        background-color:#f8f8f8;             padding:15px 20px;        margin: 0;        font-size: 15px;        z-index:1000;        border:1px soild #999;        border-radius: 4px;        color: #da4453;    }    </style>    ";} add_action( 'wp_head', 'hello_world_css' );

然后我们到后台管理页面,启用 Hello World 这个插件,然后查看一下效果吧。

总结:
其实这个教程相当于demo版本,对新手熟悉Wordpress插件的开发流程,是个简单的了解,希望对你有用!

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:蓝色创想 » 如何编写一个 WordPress插件

分享到: 生成海报
本站源码仅供学习交流,如需商用请在官方购买正版。技术服务为增值服务。如有问题看联系站长QQ:1305675066

评论 2

  1. #1

    格式都掉啦 :razz:

    _Wr_7个月前 (05-11)国内网友谷歌浏览器 Windows 10 回复

实践是学习的最佳途径

了解更多联系我们
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活