前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何创建一个简单的 WordPress 插件

如何创建一个简单的 WordPress 插件

原创
作者头像
小颖club
发布2022-04-10 16:17:25
8350
发布2022-04-10 16:17:25
举报
文章被收录于专栏:建站技术博客建站技术博客

如何编写一个简单的 WordPress插件

每个 WordPress 插件都有一个主文件,您可以手动创建或使用 Plugin Boilerplate 或 Pluginplate 等工具创建该主文件。为了节省时间,让我们使用 Pluginplate(它更直观,IMO)来生成主文件和一些您以后可能需要的额外文件和文件夹。然而,目前我们只需要主文件。

创建主文件

前往Pluginplate.com,然后单击Create Your Plugin按钮,如下所示。

pluginplate 用于自定义插件的 wordpress 插件生成器
pluginplate 用于自定义插件的 wordpress 插件生成器

接下来,填写您的插件信息,如下所示。在页面底部,您会注意到 允许您向插件添加额外功能的模块部分。另请注意,您可以通过单击 加号 (+)来自定义每个模块,如下所述。满意后,单击 Generate Plugin按钮:

创建自定义插件
创建自定义插件

之后,单击 下载按钮并将插件保存到您的计算机。

现在,我们拥有了我们需要的所有基本文件,包括主文件。但是不要弹出气泡,我们的插件不会做任何事情。我们必须添加激活插件时将执行的代码。根据我们的示例,我的主文件是 hot-recipes.php,这是我们将在下一节中编辑的文件。

添加功能

要找到 hot-recipes.php邮件文件,请提取您从 Pluginplate 下载的 ZIP 文件夹:

在文件夹中,您应该会看到您的主文件,在我们的例子中,它是 hot-recipes.php

在插件文件夹中,您可以看到一堆其他文件,但我们目前不需要这些文件。接下来,让我们在主文件中添加一些函数。在您最喜欢的文本编辑器(我使用的是 Notepad++)中打开主文件(hot-recipes.php )。

根据您在 Pluginplate 中填写表格的方式,您将看到以下代码或类似内容:

代码语言:javascript
复制
<?php
/**
* Hot Recipes
*
* @package HOTRECIPES
* @author Freddy
* @license gplv2-or-later
* @version 1.0.0
*
* @wordpress-plugin
* Plugin Name: Hot Recipes
* Plugin URI: https://vistamedia.me
* Description: The Hot Recipes WordPress plugins adds a custom post type suitable for restaurants.
* Version: 1.0.0
* Author: Freddy
* Author URI: https://vistamedia.me
* Text Domain: hot-recipes
* Domain Path: /languages
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
*
* You should have received a copy of the GNU General Public License
* along with Hot Recipes. If not, see <https://www.gnu.org/licenses/gpl-2.0.html/>.
*/

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) exit;

// Plugin name
define( 'HOTRECIPES_NAME', 'Hot Recipes' );

// Plugin version
define( 'HOTRECIPES_VERSION', '1.0.0' );

// Plugin Root File
define( 'HOTRECIPES_PLUGIN_FILE', __FILE__ );

// Plugin base
define( 'HOTRECIPES_PLUGIN_BASE', plugin_basename( HOTRECIPES_PLUGIN_FILE ) );

// Plugin Folder Path
define( 'HOTRECIPES_PLUGIN_DIR', plugin_dir_path( HOTRECIPES_PLUGIN_FILE ) );

// Plugin Folder URL
define( 'HOTRECIPES_PLUGIN_URL', plugin_dir_url( HOTRECIPES_PLUGIN_FILE ) );

/**
* Load the main class for the core functionality
*/
require_once HOTRECIPES_PLUGIN_DIR . 'core/class-hot-recipes.php';

/**
* The main function to load the only instance
* of our master class.
*
* @author Freddy
* @since 1.0.0
* @return object|Hot_Recipes
*/
function HOTRECIPES() {
	return Hot_Recipes::instance();
}

HOTRECIPES();

很好,一切看起来都很棒。上面的代码将告诉 WordPress 插件的名称以及版本、作者、许可证和其他详细信息。您无需编辑任何内容。让我们进入下一步。

在上面的代码下面,添加以下代码:

代码语言:javascript
复制
/**
 * Registers the recipes post type.
 */
function hot_recipes_register_post_types() {

	// Set UI labels for the recipes post type.
	$labels = array(
		'name' => _x( 'Recipes', 'Post Type General Name', 'hot-recipes' ),
		'singular_name' => _x( 'Recipe', 'Post Type Singular Name', 'hot-recipes' ),
		'menu_name' => __( 'Recipes', 'hot-recipes' ),
		'parent_item_colon' => __( 'Parent Recipe', 'hot-recipes' ),
		'all_items' => __( 'All Recipes', 'hot-recipes' ),
		'view_item' => __( 'View Recipe', 'hot-recipes' ),
		'add_new_item' => __( 'Add New Recipe', 'hot-recipes' ),
		'add_new' => __( 'Add New', 'hot-recipes' ),
		'edit_item' => __( 'Edit Recipe', 'hot-recipes' ),
		'update_item' => __( 'Update Recipe', 'hot-recipes' ),
		'search_items' => __( 'Search Recipe', 'hot-recipes' ),
		'not_found' => __( 'Not Found', 'hot-recipes' ),
		'not_found_in_trash' => __( 'Not found in Trash', 'hot-recipes' ),
	);

	// Set other arguments for the recipes post type.
	$args = array(
		'label' => __( 'recipes', 'hot-recipes' ),
		'description' => __( 'Recipes.', 'hot-recipes' ),
		'labels' => $labels,
		'supports' => array(
			'title',
			'editor',
			'excerpt',
			'author',
			'thumbnail',
			'comments',
			'revisions',
			'custom-fields',
		),
		'taxonomies' => array(),
		'hierarchical' => false,
		'public' => true,
		'show_ui' => true,
		'show_in_menu' => true,
		'show_in_nav_menus' => true,
		'show_in_admin_bar' => true,
		'menu_position' => 5,
		'can_export' => true,
		'has_archive' => true,
		'exclude_from_search' => false,
		'publicly_queryable' => true,
		'capability_type' => 'post',
		'show_in_rest' => true,
	);

	// Registes the recipes post type.
	register_post_type( 'recipes', $args );

}
add_action( 'init', 'hot_recipes_register_post_types' );

上面的代码只是用一组选项注册了我们的自定义帖子类型“食谱”。它还添加了支持修订、自定义字段、摘录、评论、特色图像等功能。这些是您在添加新食谱时将在帖子编辑器中看到的功能。

旁白:现在,作为初学者,我现在不会太担心语法,因为它超出了今天帖子的范围。但是有了一些 PHP 知识,你就会明白上面代码的每个部分,以及每个部分的作用。此外,互联网上有大量的资源和代码可供学习和练习。

压缩你的插件文件夹

保存所有更改。将 hot-recipes文件夹(这是您找到 我们刚刚编辑的hot-recipes.php主文件的文件夹)压缩到hot-recipes.zip存档中(在 Mac 上,只需右键单击、压缩文件即可PC 我相信它非常相似)。只需确保您的文件夹另存为 .ZIP 扩展名,否则插件将无法安装。

接下来,登录到您的测试站点并导航到Plugins > Add New,如下所示。

接下来,单击 Upload Plugin按钮,从您的计算机中选择您的插件 ZIP 文件夹,然后单击Install Now

接下来,激活插件:

现在,如果您检查您的 WordPress 管理菜单,您会注意到我们的新食谱帖子类型,并具有添加新食谱的能力:

恭喜您编写了您的第一个简单插件!有了这个介绍,您可以更进一步,玩弄代码,看看您能得到什么。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何编写一个简单的 WordPress插件
    • 创建主文件
      • 添加功能
        • 压缩你的插件文件夹
        相关产品与服务
        网站建设
        网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档