编写一个WordPress插件

当编写一个WordPress插件时,你需要按照以下步骤进行:

1. 创建插件文件夹:在WordPress的插件目录(wp-content/plugins/)下创建一个新的文件夹,用于存放你的插件文件。

2. 创建插件主文件:在插件文件夹中创建一个主文件,命名为`your-plugin-name.php`,用于定义插件的基本信息和功能。

3. 编写插件头部注释:在主文件的开头,添加插件的头部注释,包括插件名称、版本、作者等信息。

“`php
/*
Plugin Name: Your Plugin Name
Plugin URI: http://your-plugin-website.com
Description: Description of your plugin.
Version: 1.0
Author: Your Name
Author URI: http://your-website.com
*/

// 插件代码从这里开始
“`

4. 注册插件激活和停用钩子:在主文件中,使用`register_activation_hook`和`register_deactivation_hook`函数注册插件的激活和停用钩子。

“`php
register_activation_hook(__FILE__, ‘your_plugin_activation_function’);
register_deactivation_hook(__FILE__, ‘your_plugin_deactivation_function’);

function your_plugin_activation_function() {
// 在插件激活时执行的代码
}

function your_plugin_deactivation_function() {
// 在插件停用时执行的代码
}
“`

5. 添加分类模板调用功能:在主文件中,使用`template_include`过滤器钩子来修改特定分类的模板。

“`php
add_filter(‘template_include’, ‘your_plugin_template_function’);

function your_plugin_template_function($template) {
if (is_category(‘your-category-slug’)) {
$new_template = plugin_dir_path(__FILE__) . ‘templates/your-template-file.php’;
if (file_exists($new_template)) {
return $new_template;
}
}
return $template;
}
“`

这里假设你的分类的slug是`your-category-slug`,你需要在插件文件夹中创建一个名为`templates`的文件夹,并在其中放置你的自定义模板文件`your-template-file.php`。

6. 创建自定义字段:你可以使用WordPress的自定义字段功能来添加标题、抢购链接、文案、开始时间和结束时间字段。

“`php
add_action(‘add_meta_boxes’, ‘your_plugin_add_meta_box’);

function your_plugin_add_meta_box() {
add_meta_box(‘your-plugin-meta-box’, ‘Your Plugin Meta Box’, ‘your_plugin_meta_box_callback’, ‘post’, ‘normal’, ‘high’);
}

function your_plugin_meta_box_callback($post) {
// 获取已保存的字段值
$title = get_post_meta($post->ID, ‘your_plugin_title’, true);
$link = get_post_meta($post->ID, ‘your_plugin_link’, true);
$text = get_post_meta($post->ID, ‘your_plugin_text’, true);
$start_time = get_post_meta($post->ID, ‘your_plugin_start_time’, true);
$end_time = get_post_meta($post->ID, ‘your_plugin_end_time’, true);

// 输出字段表单
echo ‘<label for=”your_plugin_title”>Title:</label>’;
echo ‘<input type=”text” id=”your_plugin_title” name=”your_plugin_title” value=”‘ . esc_attr($title) . ‘”><br>’;

echo ‘<label for=”your_plugin_link”>Link:</label>’;
echo ‘<input type=”text” id=”your_plugin_link” name=”your_plugin_link” value=”‘ . esc_attr($link) . ‘”><br>’;

echo ‘<label for=”your_plugin_text”>Text:</label>’;
echo ‘<textarea id=”your_plugin_text” name=”your_plugin_text”>’ . esc_textarea($text) . ‘</textarea><br>’;

echo ‘<label for=”your_plugin_start_time”>Start Time:</label>’;
echo ‘<input type=”text” id=”your_plugin_start_time” name=”your_plugin_start_time” value=”‘ . esc_attr($start_time) . ‘”><br>’;

echo ‘<label for=”your_plugin_end_time”>End Time:</label>’;
echo ‘<input type=”text” id=”your_plugin_end_time” name=”your_plugin_end_time” value=”‘ . esc_attr($end_time) . ‘”><br>’;
}

add_action(‘save_post’, ‘your_plugin_save_meta_box’);

function your_plugin_save_meta_box($post_id) {
if (defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) {
return;
}

if (isset($_POST[‘your_plugin_title’])) {
update_post_meta($post_id, ‘your_plugin_title’, sanitize_text_field($_POST[‘your_plugin_title’]));
}

if (isset($_POST[‘your_plugin_link’])) {
update_post_meta($post_id, ‘your_plugin_link’, sanitize_text_field($_POST[‘your_plugin_link’]));
}

if (isset($_POST[‘your_plugin_text’])) {
update_post_meta($post_id, ‘your_plugin_text’, sanitize_textarea_field($_POST[‘your_plugin_text’]));
}

if (isset($_POST[‘your_plugin_start_time’])) {
update_post_meta($post_id, ‘your_plugin_start_time’, sanitize_text_field($_POST[‘your_plugin_start_time’]));
}

if (isset($_POST[‘your_plugin_end_time’])) {
update_post_meta($post_id, ‘your_plugin_end_time’, sanitize_text_field($_POST[‘your_plugin_end_time’]));
}
}
“`

这里使用了`add_meta_box`函数来添加一个自定义字段的元框,然后在回调函数中输出字段表单,并在保存文章时更新字段值。

7. 保存插件文件并激活插件:将插件文件夹上传到WordPress的插件目录中,并在WordPress后台的插件管理页面激活你的插件。

 

赞(0)
未经允许不得转载:千千惠生活达人注册 » 编写一个WordPress插件