Как создать свой плагин WordPress с названием wphide: пошаговое руководство

Почему важно создавать собственные плагины с уникальным префиксом wphide

Создание собственного плагина — это отличный способ расширить функциональность сайта на WordPress, не полагаясь на сторонние решения. Использование уникального префикса, например, wphide, позволяет избежать конфликтов с другими плагинами и повышает безопасность. Это особенно важно для сайтов, стремящихся к индивидуальному подходу и предотвращению возможных атак.

Кроме того, собственный плагин позволяет контролировать весь код, что упрощает поддержку и обновление. Если вы не найдете подходящего решения в каталоге WordPress, написание собственного модуля станет наилучшим вариантом.

Мы рассмотрим создание простого плагина с префиксом wphide, который можно расширять под свои задачи.

Структура плагина и основные файлы

Стандартная структура минимального плагина выглядит так:

wp-content/plugins/wphide-simple-plugin/
  wphide-simple-plugin.php
  readme.txt

Основной файл плагина должен содержать заголовок с информацией, чтобы WordPress распознавал плагин.

Пример заголовка с префиксом wphide:

<?php
/*
Plugin Name: WPHide Simple Plugin
Plugin URI: https://wphide.ru
Description: Пример простого плагина с префиксом wphide
Version: 1.0
Author: Ваша Имя
Author URI: https://wphide.ru
License: GPL2
*/

// Защита от прямого доступа
if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

Далее идут функции и хуки, которые расширяют функциональность.

Добавление кастомной функции с префиксом wphide

Для примера добавим функцию, которая выводит сообщение внизу каждой записи блога. Назовём её wphide_display_footer_message.

function wphide_display_footer_message() {
    echo '<p style="text-align:center;color:#888;font-size:14px;">Спасибо, что читаете наш блог!</p>';
}
add_action('the_content', 'wphide_add_message_to_content');

function wphide_add_message_to_content($content) {
    if (is_single()) {
        $content .= '<div class="wphide-footer-message">';
        ob_start();
        wphide_display_footer_message();
        $content .= ob_get_clean();
        $content .= '</div>';
    }
    return $content;
}

В этом примере мы используем хук the_content, чтобы добавить дополнительный блок с сообщением после основного содержимого записи.

Как зарегистрировать собственные настройки через панель администратора

Добавим в плагин страницу настроек, чтобы можно было менять текст сообщения через админку.

Регистрация страницы настроек

function wphide_register_settings_page() {
    add_options_page(
        'WPHide Настройки',
        'WPHide Настройки',
        'manage_options',
        'wphide-settings',
        'wphide_render_settings_page'
    );
}
add_action('admin_menu', 'wphide_register_settings_page');

Регистрация настройки и её поля

function wphide_register_settings() {
    register_setting('wphide_options_group', 'wphide_footer_message');

    add_settings_section('wphide_main_section', 'Основные настройки', null, 'wphide-settings');

    add_settings_field(
        'wphide_footer_message',
        'Сообщение в конце записи',
        'wphide_footer_message_callback',
        'wphide-settings',
        'wphide_main_section'
    );
}
add_action('admin_init', 'wphide_register_settings');

function wphide_footer_message_callback() {
    $value = get_option('wphide_footer_message', 'Спасибо, что читаете наш блог!');
    echo '<input type="text" name="wphide_footer_message" value="'.esc_attr($value).'" style="width: 100%;" />';
}

Вывод формы настроек

function wphide_render_settings_page() {
    ?>
    <div class="wrap">
        <h1>Настройки WPHide</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('wphide_options_group');
            do_settings_sections('wphide-settings');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

Использование настройки в функции вывода сообщения

Теперь изменим функцию wphide_display_footer_message, чтобы она использовала текст из настроек:

function wphide_display_footer_message() {
    $message = get_option('wphide_footer_message', 'Спасибо, что читаете наш блог!');
    echo '<p style="text-align:center;color:#888;font-size:14px;">' . esc_html($message) . '</p>';
}

Безопасность: защита от прямого доступа и проверка прав

Важно всегда защищать файлы плагина от прямого запуска и проверять права пользователя, особенно в админке. Мы уже добавили проверку defined('ABSPATH') в начале файла. Также можно добавить проверку прав в функции отображения настроек:

function wphide_render_settings_page() {
    if (!current_user_can('manage_options')) {
        wp_die('У вас нет доступа к этой странице');
    }
    // дальше форма настроек
}

Расширение плагина: пример добавления шорткода

Добавим простой шорткод [wphide_message], который выводит текущее сообщение:

function wphide_shortcode_message() {
    $message = get_option('wphide_footer_message', 'Спасибо, что читаете наш блог!');
    return '<div class="wphide-shortcode-message">' . esc_html($message) . '</div>';
}
add_shortcode('wphide_message', 'wphide_shortcode_message');

Теперь пользователь может добавить это сообщение в любом месте записи или страницы, просто вставив шорткод.

Полезные плагины для разработки и отладки собственных плагинов

Для работы с плагинами рекомендую установить такие плагины:

  • Query Monitor — для отладки запросов и ошибок PHP.
  • Debug Bar — добавляет панель отладки в админке.
  • Code Snippets — для безопасного добавления пользовательских PHP-сниппетов.

Эти инструменты помогут быстрее находить ошибки и улучшать код.

Итоги и рекомендации по созданию плагина с префиксом wphide

Создание собственного плагина с использованием префикса wphide — это простой и эффективный способ добавить функциональность и повысить безопасность сайта. Обязательно придерживайтесь стандартов WordPress, используйте уникальные имена функций и классов, проверяйте права доступа и защищайте код от прямого запуска.

Этот пример можно расширять, добавляя новые функции, интегрировать с другими плагинами и оптимизировать под свои задачи.

⭐⭐⭐⭐⭐