如果您利用Wordpress来开发应用程序的话,学会创建一个 WordPress 插件是一个非常重要的步骤,
那么让我们仔细看看如何开发插件。
什么是插件?
如果您要自定义 WordPress 模板,您可以在 functions.php 中编写代码。
基本上只需将这段代码放在插件文件夹中,它就成为一个插件。
我觉得把依赖模板的东西写成functions.php是可以的,但是如果是某种程度上可以反复利用的功能,做成插件还是更加方便的。
简易插件
让我们看一个简单的例子。假设您在 functions.php 中有这样的代码:
function show_message() {
echo 'good morning';
}
这是当您在模板文件中写入“<?php show_message(); ?>”时显示“good morning”的代码。
现在我们把它做成一个插件。
插件在“wp-content”→“plugins”中创建。
在这里,创建一个名为“show-message”的文件夹,并在其中创建一个名为“show-message.php”的文件。
插件文件除了代码外,还必须描述“插件名称”、“描述”等插件信息。
<?php
/*
Plugin Name: Show Message
Plugin URI: http://www.flashyonder.com/plugin
Description: show message
Author: SunnyDP
Version: 0.1
Author URI: http://www.flashyonder.com
*/
function show_message() {
echo 'good morning';
}
如下:
创建文件时,您刚刚创建的插件将添加到管理屏幕上的插件列表中。
如果激活该插件,您将能够执行与在 functions.php 中编写时相同的操作。
显示在管理屏幕上输入的文本的插件
接下来,让我们通过显示在管理屏幕上输入的信息,就像在模板文件中一样,来做一些更像插件的事情。
早些时候,只有一个功能,但这次我将在类的基础上创建它。
将“show-message.php”替换为以下内容:
class ShowMessage {
function __construct() {
}
}
$stext = new ShowMessage;
我们编写一个Class并即时实例化(执行)它。
“__construct”是实例化时执行的方法。我们将在此编写初始化等第一个处理。
选项屏幕
创建一个选项屏幕以输入文本。
class ShowMessage {
function __construct() {
add_action('admin_menu', array($this, 'add_pages'));
}
function add_pages() {
add_menu_page('设定文本','设定文本', 'level_8', __FILE__, array($this,'show_text_option_page'), '', 26);
}
function show_text_option_page() {
//在选择页面上显示的内容
}
}
$showtext = new ShowMessage;
在构造函数中编写“admin_menu”过滤器。
add_action('admin_menu','add_pages');
, 但在Class中指定方法时,第二个参数是一个包含 $this 的数组。
add_action('admin_menu', array($this, 'add_pages'));
菜单名称和放置菜单的位置在第 6 行的“add_menu_page”中指定。
在这里,它被放置在“评论”按钮下与其他菜单相同的层次结构中,但也可以将其显示在每个按钮的子菜单中。请启动插件,确认菜单已添加到管理屏幕。我们还没有写任何东西,所以不会看到任何东西。
选项画面的内容
在“show_text_option_page”方法中写入要在选项屏幕上显示的内容。
function show_text_option_page() {
//如果存在$_POST['showtext_options'])的值,保存
if ( isset($_POST['showtext_options'])) {
check_admin_referer('shoptions');
$opt = $_POST['showtext_options'];
update_option('showtext_options', $opt);
?><div class="updated fade"><p><strong><?php _e('Options saved.'); ?></strong></p></div><?php
}
?>
<div class="wrap">
<div id="icon-options-general" class="icon32"><br /></div><h2>设定文本</h2>
<form action="" method="post">
<?php
wp_nonce_field('shoptions');
$opt = get_option('showtext_options');
$show_text = isset($opt['text']) ? $opt['text']: null;
?>
<table class="form-table">
<tr valign="top">
<th scope="row"><label for="inputtext">Message</label></th>
<td><input name="showtext_options[text]" type="text" id="inputtext" value="<?php echo $show_text ?>" class="regular-text" /></td>
</tr>
</table>
<p class="submit"><input type="submit" name="Submit" class="button-primary" value="保存" /></p>
</form>
<!-- /.wrap --></div>
<?php
}
它基本上是一个简单的形式。
[update_option]允许在wordpress的数据库的表,[wp_options]中添加或更新记录。
在模板中显示的方法
它可能不是必需的,因为它只读取选项,但我将创建一个在模板中显示它的方法。
function get_text() {
$opt = get_option('showtext_options');
return isset($opt['text']) ? $opt['text']: null;
}
现在,在模板文件中,您可以通过执行以下操作来查看您输入的内容:
<?php echo esc_html($showtext->get_text()); ?>