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

2022-04-10 16:17:25 浏览数 (1)

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

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

创建主文件

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

接下来,填写您的插件信息,如下所示。在页面底部,您会注意到 允许您向插件添加额外功能的模块部分。另请注意,您可以通过单击 加号 ( )来自定义每个模块,如下所述。满意后,单击 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 管理菜单,您会注意到我们的新食谱帖子类型,并具有添加新食谱的能力:

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

0 人点赞