Agent Skill
2/7/2026wordpress-plugin
Use this skill when creating or modifying WordPress plugins. Covers plugin architecture, hooks, shortcodes, asset enqueueing, and the ihumbak-* plugin pattern used in this project.
M
michalstaniecko
0GitHub Stars
1Views
npx skills add michalstaniecko/wp-theme-sardynkibiznesu-2.0
SKILL.md
| Name | wordpress-plugin |
| Description | Use this skill when creating or modifying WordPress plugins. Covers plugin architecture, hooks, shortcodes, asset enqueueing, and the ihumbak-* plugin pattern used in this project. |
name: wordpress-plugin description: Use this skill when creating or modifying WordPress plugins. Covers plugin architecture, hooks, shortcodes, asset enqueueing, and the ihumbak-* plugin pattern used in this project.
WordPress Plugin Development
Overview
This skill covers creating and modifying WordPress plugins following the ihumbak-* naming convention used in this project.
Key Files
wp-content/plugins/ihumbak-*/- Custom plugin directoriesihumbak-{name}/{name}.php- Main plugin file
Plugin Structure
wp-content/plugins/ihumbak-example/
├── ihumbak-example.php # Main plugin file
├── inc/ # PHP classes and includes
│ ├── ClassName.php
│ └── AnotherClass.php
├── css/ # Plugin styles
│ └── style.css
├── js/ # Plugin scripts
│ └── script.js
├── vendor/ # Composer dependencies (if needed)
│ └── autoload.php
└── languages/ # Translations
└── ihumbak-example-pl_PL.po
Patterns & Conventions
Plugin Header
<?php
/**
*
* Plugin Name: iHumbak Example
* Description: Short description of plugin functionality
* Version: 1.0.0
* Author: Your Name
* Text Domain: ihumbak-example
*
*/
Define Plugin Constants
define('IH_EXAMPLE_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('IH_EXAMPLE_PLUGIN_URL', plugin_dir_url(__FILE__));
Load Dependencies
require_once IH_EXAMPLE_PLUGIN_DIR . 'vendor/autoload.php';
require_once IH_EXAMPLE_PLUGIN_DIR . 'inc/ClassName.php';
Enqueue Assets
add_action('wp_enqueue_scripts', 'ihumbak_example_scripts');
function ihumbak_example_scripts() {
wp_enqueue_style(
'ihumbak-example-style',
plugin_dir_url(__FILE__) . 'css/style.css',
array(),
'1.0.0',
'all'
);
wp_enqueue_script(
'ihumbak-example-script',
plugin_dir_url(__FILE__) . 'js/script.js',
array('jquery'),
'1.0.0',
true
);
// Pass data to JavaScript
wp_localize_script('ihumbak-example-script', 'ihumbakExample', array(
'ajax_url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('ihumbak_example_nonce')
));
}
AJAX Handler
add_action('wp_ajax_ihumbak_example_action', 'ihumbak_example_ajax_handler');
add_action('wp_ajax_nopriv_ihumbak_example_action', 'ihumbak_example_ajax_handler');
function ihumbak_example_ajax_handler() {
check_ajax_referer('ihumbak_example_nonce', 'nonce');
// Handle request
$result = array('success' => true);
wp_send_json($result);
}
Load Text Domain
add_action('init', 'ihumbak_example_load_textdomain');
function ihumbak_example_load_textdomain() {
load_plugin_textdomain(
'ihumbak-example',
false,
basename(dirname(__FILE__)) . '/languages/'
);
}
Register Shortcode
add_shortcode('example_shortcode', 'ihumbak_example_shortcode');
function ihumbak_example_shortcode($atts) {
$atts = shortcode_atts(array(
'id' => '',
'class' => ''
), $atts, 'example_shortcode');
ob_start();
include IH_EXAMPLE_PLUGIN_DIR . 'templates/shortcode-template.php';
return ob_get_clean();
}
Best Practices
- Naming convention - Use
ihumbak-prefix for plugin directory and main file - Prefix functions - Use
ihumbak_pluginname_prefix for all functions - Use constants - Define
PLUGIN_DIRandPLUGIN_URLconstants - Security - Always use nonces for AJAX requests
- Dependencies - Use Composer for external libraries when needed
- Scripts location - Load scripts in footer (
trueas last parameter)
Skills Info
Original Name:wordpress-pluginAuthor:michalstaniecko
Download