如何编写一个简单的 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 管理菜单,您会注意到我们的新食谱帖子类型,并具有添加新食谱的能力:
恭喜您编写了您的第一个简单插件!有了这个介绍,您可以更进一步,玩弄代码,看看您能得到什么。