首页 >CMS教程 >WordPress >WordPress插件样板第2部分:开发插件

WordPress插件样板第2部分:开发插件

William Shakespeare
William Shakespeare原创
2025-02-16 11:23:11280浏览

WordPress插件样板第2部分:开发插件

在我的系列的第一部分,WordPress插件样板的简介中,我们研究了如何在样板中组织代码。为了继续本系列,我们将应用我们之前学到的知识来构建真正的工作插件。我们将看看我们可以使用样板代码来启动和运行插件的速度,并尽可能少。

>

>本文将重点介绍创建和激活插件,以及开发插件的管理功能。为了遵循本教程,您需要对PHP和WordPress的基本了解,并且对WordPress插件API具有工作知识。

钥匙要点

    >使用WordPress插件样板通过结构化的,有组织的方法加快开发过程,确保遵循最佳实践。
  • >通过使用设置API添加选项页面来自定义插件,以允许用户修改设置,例如通知的显示位置以及后来考虑过时的几天。
  • >通过注册设置,添加设置字段以及使用样板中提供的类和方法来处理这些设置值的保存和检索。
  • >通过为选项页面创建一个干净,用户友好的界面来优化插件的面向式功能,并确保正确保存和显示设置。
  • >
  • >计划进一步增强,例如代码清理,国际化和更有选择性的应用程序逻辑,以完善插件的效率和用户体验。
  • 关于插件的
  • >
  • >我们将开发一个简单的插件,该插件将显示自上次更新特定帖子以来的天数。我们还将为插件提供几个简单的自定义,从而允许用户选择特定数量,然后将其视为过时的帖子,以及在帖子内容中的通知位置。 >
  • 准备样板

>正如第一篇文章所述,我们可以下载样板的新副本,进行搜索并自行更换,或者我们可以使用非正式的WordPress插件样板生成器来加快流程。让我们将发电机用于插件。

>

>前往WordPress插件生成器网站,并用适当的值填写表单。让我们称我们的插件为“过时的通知”。这是一个示例表格,其中填充了字段。

>

>我正在为链接到官方存储库的插件URL使用一个假想的URL。不必太担心这些东西,因为我们始终可以在插件标题中对其进行修改。

>

单击“构建”按钮,您应该获得WordPress插件板的不错的自定义副本。

>安装和激活插件

生成的邮政编码将包含两个预期的目录,资产和中继。我们不会在安装插件时使用Symlink路由,因此请在存档中提取中继文件夹并将其复制到WP-CONTENT/插件目录中。

>

>我们仍然需要适当地重命名以避免与其他插件的命名冲突,因此我们将把Trunk Directory重命名为过时的通用。

如果您现在转到WP-Admin中的“已安装插件”部分,则可以肯定的是,您会看到插件已在已安装但尚未激活的插件列表中。插件样板生成器对插件描述没有更改任何内容,因此,如果要更改它,我们可以简单地在主插件文件中编辑描述,在我们的情况下,eutated-notice.php。

>单击“激活”以激活闪亮的新插件。您的WordPress网站上什么都不会改变,因此请不要担心激活插件后什么都看不到。

> WordPress插件样板第2部分:开发插件添加选项页

>插件开发人员通常为用户提供一种自定义插件设置的方法。这可以通过使用WordPress提供的设置API来实现。让我们看看如何将自己的设置集成到插件中。

> 简而言之,我们将允许用户在帖子内容之前或邮政内容之后选择通知出现的位置。就阈值的天数而言,用户可以设置要过时的帖子之前的天数。使用这些信息,我们将动态更改通知的类别,以便我们可以与仍然被认为是新鲜的帖子进行不同的样式。

>

让我们开始添加一个插件的选项页面。

>

>在管理文件夹中打开class-of-notice-admin.php。我们需要修改此类,以允许我们为插件注册设置页面。将此公共方法添加到班级结束时。

>

>要注意的一件事是,由于我们正在使用类来定义钩子,因此我们需要以数组的形式传递一个数组(,>我们还没有完成!如我们所见,add_options_page需要一个有效的回调函数,我们尚未在OUTED_NOTICE_ADMIN类中定义。让我们加入它。这应该很简单,因为我们将使用我们的管理员/partials文件夹中包含的提供的过时的notice-admin-display.php。因此,我们为回调功能所要做的就是包含该文件。>
<span>/**
</span><span>	 * Add an options page under the Settings submenu
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function add_options_page() {
</span>	
		<span>$this->plugin_screen_hook_suffix = add_options_page(
</span>			<span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span>			<span>__( 'Outdated Notice', 'outdated-notice' ),
</span>			<span>'manage_options',
</span>			<span>$this->plugin_name,
</span>			<span>array( $this, 'display_options_page' )
</span>		<span>);
</span>	
	<span>}</span>

应该做到的。我们现在需要做的最后一件事是使用样板中提供的加载程序类正确加载它。在Include文件夹中打开您的类列出的notice.php,并添加我们在define_admin_hooks方法内定义的其他挂钩。在我们的选项页面上包含的适当操作挂钩是admin_menu,所以让我们添加它。

>
<span>/**
</span><span>	 * Render the options page for plugin
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function display_options_page() {
</span>		<span>include_once 'partials/outdated-notice-admin-display.php';
</span>	<span>}</span>

>您现在应该在设置下查看附加的“过时通知”子菜单。您可以通过访问URL http:// /wp-admin/options-general.php?page=Outdated-notice。

>现在是一个空白页,所以让我们开始使用正确的标记填充部分文件。

注册,保存和检索设置值

WordPress codex上的设置API页面提供了一个很好的解释,以说明如何注册我们自己的设置,包括在选项页面上显示它们。

这是我们将要做的事情的细分:

用样板加载器注册钩子

    注册设置部分
  1. 注册两个设置字段(阈值天数和文本位置)
  2. 注册两个设置
  3. 填充选项页面
  4. 保存并重新播放显示字段。
  5. >将钩子注册到样板加载器
>让我们逐一遍历所有步骤。

>

>要注册设置部分,我们将需要使用register_setting函数。适当的挂钩以初始化该函数是admin_Init。因此,首先,我们将在样板加载器中添加另一个钩子,以在我们的主样本类的Define_admin_hooks方法中注册我们的设置。

为了使事情变得更简单,并为我们的选项名称提供了基本的命名空间,我们将在此类的顶部添加另一个私人变量。将此摘要放在Outed_notice_admin类的顶部。

从现在开始,我们将将此值预先为与我们的选项相关的任何事物。

>
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
接下来是实际注册“设置”部分,设置字段和各个设置。再次打开OUTED_NOTICE_ADMIN类,然后添加公共方法寄存器。

注册设置部分

<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
>在public Register_setting方法中,我们将注册设置部分。我不会对各种功能和API进行太多的研究,因为法典已经提供了足够的信息来开始。由于我们的插件设置相对简单,我们将仅注册一个部分。

这个片段将允许我们使用add_settings_section函数为我们的选项页面注册一个“常规”部分。

<span>/**
</span><span>	 * Add an options page under the Settings submenu
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function add_options_page() {
</span>	
		<span>$this->plugin_screen_hook_suffix = add_options_page(
</span>			<span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span>			<span>__( 'Outdated Notice', 'outdated-notice' ),
</span>			<span>'manage_options',
</span>			<span>$this->plugin_name,
</span>			<span>array( $this, 'display_options_page' )
</span>		<span>);
</span>	
	<span>}</span>

请注意,我们正在用变量$ option_name预列出我们的部分名称,以防止与其他插件发生冲突。回调可用于提供有关我们部分的其他信息,这正是我们想要的。

>我们将添加另一种公共方法,Outdated_notice_general_cb,该方法将呼应有关本节的基本信息。

<span>/**
</span><span>	 * Render the options page for plugin
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function display_options_page() {
</span>		<span>include_once 'partials/outdated-notice-admin-display.php';
</span>	<span>}</span>
注册两个设置字段(阈值天数和文本位置)

我们需要使用的设置API的下一部分是在选项页面上注册要渲染的实际字段。可以使用add_settings_field函数来实现这一点。

>我们将使用无线电按钮进行文本位置配置。这是通过将此代码添加到我们拥有的register_setting函数中来完成的。

>

我们需要确保Add_settings_field的第五个参数将指向我们之前注册的正确设置部分,否则我们可能在我们的选项页面上看不到字段。>
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
>这还尚未完成。我们需要提供回调功能,以呈现我们的无线电按钮的实际标记。在我们的OUTED_NOTICE_POINTION_CB函数中,我们需要包括此代码块:

可以使用普通文本输入来配置一天阈值的第二个选项。因此,我们将注册另一个设置字段:

<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
>再次,我们还需要提供一个回调函数,该函数将呈现我们的文本字段。

注册设置
<span>/**
</span><span>	 * The options name to be used in this plugin
</span><span>	 *
</span><span>	 * <span>@since  	1.0.0
</span></span><span>	 * <span>@access 	private
</span></span><span>	 * <span>@var  	<span>string</span> 		$option_name 	Option name of this plugin
</span></span><span>	 */
</span>	<span>private $option_name = 'outdated_notice';</span>
最后,我们需要注册要使用的选项名称,以便可以在WordPress中识别。由于我们使用了两个不同的选项名称,即OUTED_NOTICE_POINTION和OUTED_NOTICE_DAY,因此我们将使用register_setting函数进行注册。>
<span>// Add a General section
</span>	<span>add_settings_section(
</span>		<span>$this->option_name . '_general',
</span>		<span>__( 'General', 'outdated-notice' ),
</span>		<span>array( $this, $this->option_name . '_general_cb' ),
</span>		<span>$this->plugin_name
</span>	<span>);</span>
请注意,寄存器_setting函数的第三个参数是消毒回调。尽管它是可选的,但要确保在保存到数据库之前对输入值进行消毒总是很有用的。

对于日期消费,我们将使用内置的PHP功能,即在我们的情况下足够。至于文本通知位置,我们将定义我们自己的消毒回调函数,这将仅允许将某些值保存到数据库中。当处理仅限于特定值的选项时,这一点特别有用,例如在这种情况下,我们只接受两个值之前和之后的值,因此我们的消毒回调将需要确保,如果值不是一个值这些,它不会被保存到数据库中。

这是一个简单的消毒回调函数,可以实现这一目标:>

<span>/**
</span><span>	 * Add an options page under the Settings submenu
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function add_options_page() {
</span>	
		<span>$this->plugin_screen_hook_suffix = add_options_page(
</span>			<span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span>			<span>__( 'Outdated Notice', 'outdated-notice' ),
</span>			<span>'manage_options',
</span>			<span>$this->plugin_name,
</span>			<span>array( $this, 'display_options_page' )
</span>		<span>);
</span>	
	<span>}</span>

填充选项页面

在注册所有相关设置之后,

>现在我们需要确保正确的页面渲染器。由于我们正在使用WordPress的方式注册我们的字段和设置,因此此任务特别简单。

>

>打开admin/partials文件夹内的过时的notice-admin-display.php。 以下是我们可以根据我们之前注册的设置渲染选项页面的方式。>

<span>/**
</span><span>	 * Render the options page for plugin
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function display_options_page() {
</span>		<span>include_once 'partials/outdated-notice-admin-display.php';
</span>	<span>}</span>
>与do_settings_sections and settings_fields功能的简单组合,您的选项页面完全可以立即完成。

>让我们休息一下,刷新选项页面。

>

WordPress插件样板第2部分:开发插件保存并重新填充字段

>

>尝试填充一些值并保存表单。您应该收到“保存设置”的通知。但是没有发生。让我们尝试对我们的两个选项进行var_dump。将其放在相关功能中。

根据以下示例,我们应该从数据库中获取一些值:>
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>

>这意味着我们的表单正常工作,因此唯一需要完成的操作是在文本字段中显示当前值,并确保选中正确的广播按钮。

>让我们首先处理收音机按钮。作为快捷方式,我们将使用WordPress提供的检查功能来标记先前选择的值。我们的OUTED_NOTICE_POINTION_CB将需要一些修改。
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
>

这是回调的更新片段。

现在,每当我们更改任一字段的值时,它都会在选项页面中正确反映。

进一步改进
<span>/**
</span><span>	 * The options name to be used in this plugin
</span><span>	 *
</span><span>	 * <span>@since  	1.0.0
</span></span><span>	 * <span>@access 	private
</span></span><span>	 * <span>@var  	<span>string</span> 		$option_name 	Option name of this plugin
</span></span><span>	 */
</span>	<span>private $option_name = 'outdated_notice';</span>

这绝不是完整的。我们始终可以改善此插件的管理功能。我能想到的一些事情是:

>

代码清理 - WordPress插件样板具有许多有用的功能,但是在我们的情况下,管理方面,CSS和JS加载是完全不必要的。我们随时可以从我们的代码库中删除它。

i18n(国际化)准备就绪 - 尽管我们在插件中广泛使用__()和_e(),但我们并没有真正完成实际的I18N过程。我不会在此处介绍此过程,因为该主题已经在SitePoint上进行了广泛讨论,例如在本文中。

>最佳选择 - 由于我们的实施将应用于所有帖子,我们可以进一步优化它以应用于某个类别中的帖子,或其中包含特定标签的帖子。
  • 可以从该GitHub存储库中查看完整的代码。

    结论

    >我们通过注册相关设置创建了一个带有基本管理功能的插件,并为用户创建一个选项页面以自定义我们的插件。在使用WordPress插件样板的时间相对较短的时间内,我们实现了这一目标而不损害代码质量,但仍按照WordPress建议的最佳实践。

    >请继续关注本系列的下一部分,我们将在插件的公开面上进行公开面向帖子内容中的适当通知。

    经常询问有关使用样板开发WordPress插件的问题

    > WordPress插件样板是什么,为什么要使用它?它提供了一个易于理解和使用的清晰,一致的结构。使用此样板可以为您节省大量的时间和精力来设置插件的基本结构。它还可以确保您的插件遵循WordPress编码标准和最佳实践,这可以帮助防止错误和兼容性问题。

    >

    >我如何开始使用WordPress plugin Boilerplate?使用WordPress插件样板,您首先需要从其GitHub存储库下载它。下载后,您可以重命名样板的目录和文件以匹配插件的名称。然后,您可以通过在样板的现有结构中添加自己的自定义功能来开始开发插件。

    >

    > wordpress插件blobin Boblein broilerplate的主要组件是什么?

    主要组件。其中包括包含插件标头和加载程序类的插件文件;包括包含核心插件类和其他功能相关文件的目录;管理目录,其中包含与插件特定功能有关的文件;和包含与插件的公共面向功能有关的文件的公共目录。

    >

    >如何将自己的功能添加到WordPress插件样板上?

    >

    WordPress插件样板,您可以在包含目录中创建新类。这些类应扩展样板提供的基类。然后,您可以将自己的方法添加到这些类中以实现所需的功能。您还可以根据需要修改现有的类和方法。

    >如何处理WordPress插件样板中的插件设置?>

    >如何在插件中添加Admin特定功能?

    以将管理特定功能添加到插件中,您可以使用WordPress插入式Blookin Boblelplate的管理目录中提供的类和方法。该目录包括用于创建管理页面,添加设置字段和处理表单提交的类。

    >如何将面向公共的功能添加到我的插件中?

    以将公共面向公共功能添加到您的插件,您可以使用WordPress插件样板的公共目录中提供的类和方法。该目录包括用于启动脚本和样式的类,以及显示面向公众的内容。

    如何使用WordPress插入式插件国际化我的插件?>国际化。此类包括用于加载插件文本域的方法,该方法允许您的插件翻译成不同的语言。

    >

    如何在插件中处理AJAX请求?

    >

    用于处理AJAX请求。这些类包括用于注册AJAX操作,处理AJAX请求和发送AJAX响应的方法。

    >

    >在使用WordPress plubin Boblein blogin blogin Plate时,我如何调试我的插件?插件样板可以通过多种方式完成。一种常见的方法是在wp-config.php文件中使用wp_debug常数。这将显示PHP错误,通知和警告。您还可以使用可用于WordPress的各种调试插件,也可以使用PHP的内置错误记录功能。

以上是WordPress插件样板第2部分:开发插件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn