WordPress – це найпопулярніша CMS у світі, яка дозволяє створювати сайти будь-якої складності. Однією з головних переваг цієї платформи є її розширюваність за допомогою плагінів. Якщо ти фрілансер і хочеш розширити свої можливості, створення плагінів для WordPress – це чудова навичка, яка може значно підвищити твій дохід. У цій статті я розповім, як створити свій перший плагін для WordPress з нуля.
1. Що таке плагін для WordPress?
Плагін – це PHP-скрипт або набір файлів, які додають новий функціонал у WordPress без необхідності змінювати код основної системи. Це можуть бути форми зворотного зв’язку, інтеграції з API, зміни інтерфейсу сайту або навіть великі функціональні модулі.
2. Основи створення плагіна
2.1 Структура плагіна
Будь-який плагін для WordPress складається мінімум з одного PHP-файлу. Типова структура плагіна може виглядати так:
my-first-plugin/
├── my-first-plugin.php
├── readme.txt
├── assets/
│ ├── css/
│ ├── js/
├── includes/
- my-first-plugin.php – головний файл плагіна.
- readme.txt – опис плагіна.
- assets/ – папка для зберігання CSS, JS та зображень.
- includes/ – додаткові PHP-файли.
3. Створення базового плагіна
3.1 Створення головного файлу
Створи папку my-first-plugin
у wp-content/plugins/
і всередині неї файл my-first-plugin.php
. У ньому додай наступний код:
<?php
/**
* Plugin Name: My First Plugin
* Plugin URI: https://example.com/my-first-plugin
* Description: Простий плагін для WordPress
* Version: 1.0
* Author: Твоє ім'я
* Author URI: https://example.com
* License: GPL2
*/
if (!defined('ABSPATH')) {
exit; // Захист від прямого доступу
}
Цей код містить заголовок, який WordPress використовує для ідентифікації плагіна.
3.2 Додавання хука активації
При активації плагіна можна виконати певні дії, наприклад, створити таблиці в базі даних:
function my_plugin_activate() {
// Дії при активації
update_option('my_plugin_option', 'activated');
}
register_activation_hook(__FILE__, 'my_plugin_activate');
3.3 Додавання хука деактивації
function my_plugin_deactivate() {
// Дії при деактивації
delete_option('my_plugin_option');
}
register_deactivation_hook(__FILE__, 'my_plugin_deactivate');
4. Додавання функціоналу
4.1 Додавання меню в адмінку
function my_plugin_menu() {
add_menu_page(
'Мій плагін',
'My Plugin',
'manage_options',
'my-plugin',
'my_plugin_settings_page',
'dashicons-admin-generic',
20
);
}
add_action('admin_menu', 'my_plugin_menu');
4.2 Створення сторінки налаштувань
function my_plugin_settings_page() {
echo '<div class="wrap"><h1>Налаштування плагіна</h1></div>';
}
5. Робота з базою даних
Якщо потрібно зберігати дані, можна використати wp_options
:
update_option('my_plugin_setting', 'value');
$get_value = get_option('my_plugin_setting');
Або створити власну таблицю:
function my_plugin_create_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'my_plugin_table';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name text NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
dbDelta($sql);
}
register_activation_hook(__FILE__, 'my_plugin_create_table');
6. Завантаження CSS і JavaScript
function my_plugin_assets() {
wp_enqueue_style('my-plugin-style', plugins_url('assets/css/style.css', __FILE__));
wp_enqueue_script('my-plugin-script', plugins_url('assets/js/script.js', __FILE__), array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'my_plugin_assets');
7. Створення шорткода
function my_plugin_shortcode($atts) {
return '<p>Це контент з мого плагіна!</p>';
}
add_shortcode('my_plugin', 'my_plugin_shortcode');
Використання в контенті:
[my_plugin]
Висновок
Створення плагінів для WordPress – це потужний інструмент для розширення функціональності сайтів та додатковий спосіб заробітку для фрілансера. Ця стаття лише поверхнево охоплює можливості, але якщо ти хочеш розвиватися у цьому напрямку, варто глибше вивчити WordPress API, роботу з AJAX, безпеку плагінів та інтеграцію з REST API.
Якщо ти вже створював свої плагіни – поділися досвідом у коментарях!
Залишити відповідь