WordPress插件制作教程(一)

最快香港主机——主机91,完成机房搬迁升级
December 29, 2014
实用的网站检测工具
January 1, 2015

WordPress插件制作教程(一)

Wordpress的强大不仅在于其主体多样化,更在与其拥有丰富的插件库。你是否也想制作一款插件呢?木屋博客将通过系列的教程,运用示例教程教你制作一款关于心情发布的插件。本款插件的制作中涉及Ajax数据的提交、更新、添加和删除。

插件制作准备工作

首先我们在\wp-content\plugins目录下添加一个文件夹叫做”My-Mood”,在文件夹中添加一个叫做index.php的主文件,这个是插件的主文件,文件的开始需要一些命名的格式:如下面的代码 [cce_php]
/*
Plugin Name: My Mood
Plugin URI: https://muwu.me
Description: 一个心情发布插件
Version: 1.0
Author: 木屋博客
Author URI: https://muwu.me
License: GPL
*/
?>
[/cce_php]

Plugin Name 代表了插件的名字。
Plugin URI 代表的是插件的发布地址。
Description 代表的是关于这个插件的描述。
Version 代表了版本好,第一个版本使用1.0,如果你的插件有更新,就依次更改这个版本参数。
Author 代表插件作者的名字。
Author URI 代表作者的主页。。
License 代表了插件的License,如果你是开源的就使用GPL,关于License的参数可以百度或者google查询,这里不再过多的篇幅叙述。

插件的初始化安装

插件不仅仅是样式的改变,通常我们会加入新的表,那么新加的表我就是通过插件的安装函数来完成的,我们继续在index.php中加入如下的代码:

[cce_php]
 //激活动作
register_activation_hook( __FILE__, 'my_mood_install');

function my_mood_install() {

// 启用时要做的事情
global $wpdb;

$table_name = $wpdb->prefix . "mood";

$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
createdon datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
publishedon datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
status int NOT NULL,
mood int NOT NULL,
text text NOT NULL,
address varchar(55) DEFAULT '' NOT NULL,
UNIQUE KEY id (id)
) $charset_collate;";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
?>
[/cce_php]

如上面代码的注释,我们通过register_activation_hook激活动作来完成插件的安装,激活动作通过参数my_mood_install,找到名为my_mood_install的函数执行,这个动作会在插件激活的时候执行。

我们通过my_mood_install函数创建了一张名为”mood”的表,数据库表的创建是通过Wordpress的dbDelta函数来执行sql语句完成的,要想使用此函数需要先引入wp-admin/includes/upgrade.php文件。

通过上面的代码我们就运用Wordpress内置的方法创建了一张给mood插件存储数据的表。

插件卸载

既然Wordpress有安装也一定会有卸载。Wordpress插件的卸载方法是通过一个叫做uninstall.php的固定命名文件来执行的,在插件根目录下建一个名叫uninstall.php的文件,代码内容如下所示:

[cce_php]
 //卸载动作
my_mood_uninstall();

function my_mood_uninstall() {

// 执行内容
global $wpdb;
$table_name = $wpdb->prefix . "mood";
$wpdb->query("DROP TABLE IF EXISTS " . $table_name);
}
?>
[/cce_php]
通过Wordpress的$wpdb->query来执行sql,删除我们安装时的创建的表,这样就删除一切与该插件相关的内容了。

给插件添加后台管理菜单

如下面的代码: [cce_php] //添加菜单 add_action( 'admin_menu', 'my_mood_create_menu' ); function my_mood_create_menu() { global $my_settings; $my_mood_settings=add_menu_page( "My Mood", "My Mood", "manage_options", "my-mood", "test" ); } ?> [/cce_php]

通过上面的代码我们就可以为插件添加一个菜单。方法通过add_action( 'admin_menu', 'my_mood_create_menu' )添加一个菜单而菜单具体的页面则是通过参数来绑定的,如上面的方法是传入了叫做"test"的参数,因此当点击这个"My Mood"的菜单的时候就会去寻找叫做"test"的方法进行样式的输出,我们给出test方法

[cce_php]
 function test(){
global $wpdb;
$table_name = $wpdb->prefix . "mood";

$fivesdrafts = $wpdb->get_results(
"
SELECT id, createdon, publishedon,status,mood,text,address
FROM $table_name
ORDER BY createdon DESC
"
);
?>
foreach ( $fivesdrafts as $fivesdraft ) { ?> } ?>
发布内容 现在所在的 心情 创建日期 操作
发布内容 现在所在的 心情 创建日期 操作
添加
text; ?>'/> address; ?>'/> 保存删除
} ?> [/cce_php]

test方法是php与html代码混编的样式,其中HTMl部分主要负责样式的输出,而PHP的代码则是负责执行取数据的逻辑。主要从数据库读取数据的部分,通过Wordpress的$wpdb->get_results方法就可以从数据库中取出我们第一步中创建的表中的数据,返回的是一个数据集合,包含了多条数据。最后通过foreach循环将数据输出。

在下面的教程木屋博客将为你讲解怎样添加数据到创建的表中,实现页面的不跳转动态添加数据。

Leave a Reply

Your email address will not be published. Required fields are marked *