文本是《一步步创建你的第一个 WordPress 小工具(共5篇)》专题的第 2 篇。阅读本文前,建议先阅读前面的文章:
本文是系列教程《创建你的第一个WordPress小工具》的第二部分,向你展示如何创建属于你的第一个WordPress小工具。在第一部分的教程中,你已经了解了WordPress小工具API(Application Programming Interface,应用程序编程接口)和the WP_Widget类。
你需要做的是
跟随本教程,你需要
- 安装一个WordPress开发环境
- 一个代码编辑器
安装插件
首先你要做的是安装你的插件。在你的 wp-content/plugins 目录下创建一个新文件(可以命名为 tutsplus-list-subpages-widget),在该文件夹中新建一个名为“tutsplus-list-subpages-widget.php”的php文件。
将以下內容添加到文件中:
- <?php
- /*Plugin Name: List Subpages Widget
- Description: This widget checks if the current page has parent or child pages and if so, outputs a list of the highest ancestor page and its descendants. This file supports part 1 of the series to create the widget and doesn’t give you a functioning widget.
- Version: 0.1
- Author: Rachel McCollin
- Author URI: http://rachelmccollin.com
- License: GPLv2
- */
- ?>
显然,你会想改掉作者的名字和url(网址),而这也恰好决定了WordPress在插件界面需要显示的内容。
保存你的插件文件。
创建小工具类
下一步就是创建一个新类来拓展 WP_Widget 类。
将以下代码复制到你的插件文件中:
- <?php
- class Tutsplus_List_Pages_Widget extends WP_Widget {
- function __construct() {
- }
- function form( $instance ) {
- }
- function update( $new_instance, $old_instance ) {
- }
- function widget( $args, $instance ) {
- }
- }
- ?>
让我们来看一看这个新类包含些什么:
- __construct 函数会完成你所期望的——它会构造一个函数。在这个函数里面你可以做出一些定义,比如WordPress小工具的ID、标题和说明。
- form函数会在WordPress小工具界面创建表单,让用户来定制或者激活它。
- update函数确保WordPress能及时更新用户在WordPress小工具界面输入的任何设置。
- widget函数则定义了在网站前端通过WordPress小工具输出的内容。
最后这三个函数的参数我会在相关课程中做进一步详细的解释。
注册小工具
只有通过WordPress进行了注册,你的WordPress小工具才能工作。在你的新类下面加入以下函数和钩子:
- <?php
- function tutsplus_register_list_pages_widget() {
- register_widget( ‘Tutsplus_List_Pages_Widget’ );
- }
- add_action( ‘widgets_init’, ‘tutsplus_register_list_pages_widget’ );
- ?>
register_widget()函数是一个WordPress函数,它唯一的参数就是你刚刚创建的类的命名。
随后将你创建的函数挂入 widgets_init 钩子,确保它可以被WordPress拾起。
注:现在你的WordPress小工具还是将无法工作,也不会在小工具界面上显示,因此不用担心激活尚未弄好的插件。你需要完成本系列教程中的所有步骤,才能使它正常工作。
小结
现在你已经开始创建你的WordPress小工具了。你已经为你的WordPress小工具创建了一个插件,并建立了一个新类去创建和注册了它。
下一课你将学习如何使用 __construct 函数构建你的WordPress小工具。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 lk2768783601@gmail.com 举报,一经查实,本站将立刻删除。