今年年初,我们完成了一系列教程,涵盖了在WordPress中创建自定义管理页面的过程。 尽管本系列不一定是我们要介绍的材料的先决条件,但对其进行复习并没有什么坏处。
WordPress开箱即用,通过其许多API提供了许多功能。 例如,如果您想仅通过着眼于将显示给用户的选项来介绍管理页面,则可以使用Settings API来完成 。
选择此特定的API也有很多优点。 其中一些包括:
- 消毒和验证
- 自定义菜单项
- 轻松介绍管理页面
- 处理各种类型的输入
- 成功或失败时自动发送消息
- 以及更多
但是,就像我们研究了如何创建自定义管理页面一样,也可以实现一个系统,该系统允许我们以编程方式设置自己的自定义消息,其类型以及在管理页面上何时何地显示它们。
因此,在继续与上述系列相同的主题之后,我们将研究如何为管理页面创建自己的自定义消息传递系统。 为此,我们将创建一个插件来演示概念,我们将在WordPress中注册自定义钩子,还将看到如何实现它们。
正如我所提到的,上一教程不一定是本系列的前提条件,但是如果您是上述内容的新手,那么请花一些时间来复习该系列,因为这将为该方向打下基础。我们要去的地方。
话虽如此,让我们开始吧。
本系列需要什么
如果您阅读过我以前的任何教程,您就会知道我喜欢从两件事开始每个教程(甚至系列)。
- 提供您需要入门的软件列表。
- 提供我们前进方向的路线图,以便您可以决定是否要继续该系列。
现在开始吧。
您的开发环境
一般来说,这是我们将要开始构建的项目所需要的。
- PHP 5.6.25
- MySQL 5.6.28
- Apache(或者Nginx,如果您对此感到满意)
- WordPress 4.6.1
- 您最喜欢的编辑器或IDE
如果您对所有这些如何组合感到好奇,建议阅读本系列 。
我通常不建议一种软件比其他软件更好,因为有很多选择,但是如果您不熟悉任何一种软件,那么我强烈建议您使用MAMP的免费版本。 它与macOS和Windows兼容,因此应该与许多设置兼容。 它易于使用,易于入门,并提供安装时所需的一切。
我们的路线图
话虽如此,这是本系列的初步分解:
- 在本教程中,我们将为插件的最低限度和入门工作打下基础。
- 在第二篇文章中,我们将通过添加一个非常基本的WordPress管理页面来进一步扩展该插件。 我们还将调用将要使用的自定义钩子,并将其连接到服务器端。 我们还将开始设置Messenger的基础工作。
- 在下一个教程中,我们将通过添加对错误和成功消息的支持以及涵盖安全性的一些点来开始实施Settings Messenger。
- 最后,我们将所有内容捆绑在一起,进行实际操作,并公开提供最终的插件供您下载。
请注意,每个教程都将包含可下载的源文件。 但是,它们不一定是完整的源文件,因为它们可能不包含文档或其他说明。 毕竟,这就是本教程的全部内容。
但是提供的最终版本将包括这一点。
启动插件
现在,我们知道我们的插件将需要以下内容:
- 基本管理页面
- 菜单项,将我们带到管理页面
- 一个引导文件来启动插件
因此,让我们将所有这些部分放在一起并起作用。
1.菜单项
我们要做的第一件事是介绍将在WordPress管理导航菜单中的“ 选项”菜单中添加子菜单项的功能。
为此,我们需要两个类和一个文件:一个类将显示子菜单,一个类将显示子菜单页面,以及一个文件将显示页面内容。
在执行此操作之前,我建议使用以下目录结构:
这意味着admin
目录将具有views
子目录。 admin
目录将具有class-submenu.php
和class-submenu-page.php
。 在下一节中,我们将讨论管理页面。
首先,让我们看一下每个单独的文件。
class-submenu.php
此类负责将菜单项添加到选项页面:
<?php
class Submenu {
private $submenu_page;
public function __construct( $submenu_page ) {
$this->submenu_page = $submenu_page;
}
public function init() {
add_action( 'admin_menu', array( $this, 'add_options_page' ) );
}
public function add_options_page() {
add_options_page(
'Tuts+ Custom Messages',
'Tuts+ Custom Message Example',
'manage_options',
'tutsplus-custom-messages',
array( $this->submenu_page, 'render' )
);
}
}
如果您已经阅读了食典中的API调用 ,将会看到这将在“ 工具”菜单中引入一个菜单项,该菜单项可通过“ Tuts +自定义消息”访问,并包含一个标题,我们将在稍后看到。
还请注意,有一个init
方法。 此函数使用WordPress的admin_menu
钩子注册add_options_page
,以便在WordPress页面生命周期中正确注册(并显示)它。
其次,任何具有manage_options
功能的人都可以访问此菜单,并且它将在属于它的submenu_page
上调用render方法。
问题? 没有子菜单页面。 现在让我们创建该类。
class-submenu-page.php
此类的代码如下:
<?php
class Submenu_Page {
public function render() {
include_once( 'views/settings.php' );
}
}
Submenu_Page
类显然很简单。 它所做的只是显示settings.php
页面,稍后我们将对其进行回顾。
请注意,并非所有子菜单页面都会如此简单。 但是,我们插件的复杂性尚未到来。 我们将在以后的文章中看到。
2.管理页面
正如Submenu_Page
很简单一样,设置页面也是如此。 实际上,如果您熟悉基本标记,那么应该很容易理解确切的情况:
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<p class="description">
We aren't actually going to display options on this page. Instead, we're going
to use this page to demonstration how to hook into our custom messenger.
</p><!-- .description -->
</div><!-- .wrap -->
简而言之,这只是在WordPress中显示一条消息,除了显示自定义消息外,我们将不会将该页面用于其他任何事情。
毕竟,这就是我们要做的。
3.赋予生命
至此,我们已经准备好设置引导文件,以使插件生效。 这是基本的引导文件:
<?php
/**
* The plugin bootstrap file
*
* @link TODO
* @since 1.0.0
* @package TutsPlus_Custom_Messaging
*
* @wordpress-plugin
* Plugin Name: Tuts+ Custom Messaging Example
* Plugin URI: TODO
* Description: Import your employee directory as users manually or automatically, populate employees' birthdays and anniversaries into a CPT, and create a front-end directory page.
* Version: 0.1.0
* Author: Tom McFarlin
* Author URI: https://tommcfarlin.com
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
// We *could* use an autoloader here but I'm not sure everyone has read the series.
foreach ( glob( plugin_dir_path( __FILE__ ) . 'admin/*.php' ) as $file ) {
include_once $file;
}
add_action( 'plugins_loaded', 'tutsplus_custom_messaging_start' );
/**
* Starts the plugin.
*
* @since 1.0.0
*/
function tutsplus_custom_messaging_start() {
$plugin = new Submenu(
new Submenu_Page()
);
$plugin->init();
}
注意在foreach
循环上方的注释。 尽管我们在先前的系列中已经介绍了自动加载,但是我不想假设任何人都已经阅读了导致该特定系列的所有系列。
安装到位后,您应该能够登录到WordPress帐户,激活插件,然后看到以下屏幕:
如果没有,请对照此帖子附带的源代码仔细检查所有源代码,并验证所有内容是否正确。
如果不是,请进行必要的更正,然后重试。 如果需要尝试,请不要流汗。 编程有时可能会让人感到沮丧,尤其是在刚入门时。
结论
如果您到目前为止已经完成了我的大部分工作,那么其中的许多事情似乎已经很熟悉了。 如果没有,那么我很高兴有您加入。 在等待第二篇教程时,我建议您查阅我出版的其他一些材料,以大致了解我想讲的内容以及这些概念的教学方法。
我也总是很乐意通过评论回答问题,您也可以随时查看我的博客并在Twitter上关注我 。 我通常都会谈论WordPress中的软件开发以及切线主题。
在下一个教程之前,请研究代码,下载文件,并查看其如何在本地计算机上运行。 在下一部分中,我们将精确地从上次中断的地方开始。
翻译自: https://code.tutsplus.com/tutorials/creating-a-custom-wordpress-messaging-system-part-1--cms-27542