WordPress Development¶
Master WordPress development from basics to advanced plugin development.
Prerequisites¶
Before starting WordPress, complete:
Learning Path¶
1. WordPress Administration¶
Get comfortable with WordPress first:
- Install WordPress locally using Laravel Herd
- Explore the admin dashboard
- Create pages, posts, and media
- Install and activate themes
- Install and activate plugins
- Manage users and permissions
- Understand WordPress settings
Resources:
2. WordPress Plugin Development¶
Official Documentation:
- WordPress Plugin Handbook 📖 START HERE
- Plugin Developer Handbook
Core Concepts:
Hooks: Actions & Filters¶
WordPress hooks are the foundation of plugin development.
Actions - Do something at a specific point:
// Add an action
add_action('wp_footer', 'my_custom_footer');
function my_custom_footer() {
echo '<p>Custom footer text</p>';
}
Filters - Modify data:
// Add a filter
add_filter('the_content', 'add_signature');
function add_signature($content) {
return $content . '<p>Thanks for reading!</p>';
}
Resources:
WP-CLI (WordPress Command Line)¶
Essential tool for WordPress developers:
# Install WordPress
wp core download
wp core config --dbname=mydb --dbuser=root
wp core install --url=example.test --title="My Site"
# Plugin management
wp plugin list
wp plugin install query-monitor --activate
wp plugin update --all
# Theme management
wp theme list
wp theme activate twentytwentyfour
# Database
wp db export
wp db import backup.sql
# Search and replace
wp search-replace 'old-url.com' 'new-url.com'
# Generate content
wp post generate --count=10
3. WordPress Theme Development¶
Official Documentation:
Key Concepts:
- Template hierarchy
- Template tags
- The Loop
- Custom post types
- Custom taxonomies
- Theme functions.php
- Child themes
Resources:
🏗️ Modern WordPress Development¶
4. ReactJS for WordPress¶
Modern JavaScript in WordPress:
- React Tutorial (Video) - Comprehensive guide
- React Official Docs
Why React in WordPress? - Gutenberg editor is built with React - Modern block development uses React - Better user interfaces - Component-based architecture
5. Gutenberg Block Development¶
Building Custom Blocks:
Resources:
Quick Start:
# Install @wordpress/create-block
npm install -g @wordpress/create-block
# Create a new block plugin
npx @wordpress/create-block my-custom-block
# Start development
cd my-custom-block
npm start
Basic Block Structure:
import { registerBlockType } from '@wordpress/blocks';
import { useBlockProps } from '@wordpress/block-editor';
registerBlockType('myplugin/my-block', {
edit: () => {
const blockProps = useBlockProps();
return <p {...blockProps}>Hello from the editor!</p>;
},
save: () => {
const blockProps = useBlockProps.save();
return <p {...blockProps}>Hello from the frontend!</p>;
},
});
🛒 E-Commerce Development¶
6. WooCommerce¶
The most popular WordPress e-commerce solution:
Resources:
Key Topics:
- Product types
- Orders and checkout
- Payment gateways
- Shipping methods
- WooCommerce hooks and filters
- Custom product types
- REST API
Common Hooks:
// Modify product price
add_filter('woocommerce_get_price_html', 'custom_price_html', 10, 2);
// After checkout
add_action('woocommerce_thankyou', 'custom_thankyou_page');
// Modify cart
add_action('woocommerce_before_calculate_totals', 'modify_cart_items');
7. Dokan Plugin (Multi-vendor Marketplace)¶
Build multi-vendor marketplaces:
Resources:
Key Features:
- Vendor dashboard
- Commission management
- Vendor products
- Vendor orders
- Multi-vendor shipping
- Custom integrations
Dokan Hooks:
// After vendor registration
add_action('dokan_new_seller_created', 'custom_vendor_setup');
// Modify vendor dashboard
add_filter('dokan_get_dashboard_nav', 'add_custom_vendor_menu');
Development Workflow¶
Project Structure¶
wp-content/
├── plugins/
│ └── my-plugin/
│ ├── my-plugin.php
│ ├── includes/
│ ├── admin/
│ ├── public/
│ └── assets/
│ ├── css/
│ └── js/
└── themes/
└── my-theme/
├── style.css
├── functions.php
├── index.php
└── template-parts/
Plugin Header¶
<?php
/**
* Plugin Name: My Awesome Plugin
* Plugin URI: https://example.com/my-plugin
* Description: A brief description of the plugin.
* Version: 1.0.0
* Author: Your Name
* Author URI: https://example.com
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: my-plugin
* Domain Path: /languages
*/
// If this file is called directly, abort.
if (!defined('WPINC')) {
die;
}
// Plugin code starts here...
Best Practices¶
Security:
// Sanitize input
$user_input = sanitize_text_field($_POST['field']);
// Validate and sanitize
$email = sanitize_email($_POST['email']);
// Escape output
echo esc_html($user_input);
echo esc_url($url);
echo esc_attr($attribute);
// Nonce verification
wp_verify_nonce($_POST['nonce'], 'action_name');
Database Queries:
global $wpdb;
// Prepared statements (secure)
$results = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}posts WHERE post_type = %s",
'post'
)
);
// Never use direct queries!
// BAD: $wpdb->query("SELECT * FROM wp_posts WHERE id = " . $_GET['id']);
WordPress Coding Standards:
// Use WordPress functions
wp_enqueue_script('my-script', plugin_dir_url(__FILE__) . 'js/script.js');
wp_enqueue_style('my-style', plugin_dir_url(__FILE__) . 'css/style.css');
// Use WordPress HTTP API
$response = wp_remote_get('https://api.example.com/data');
// Use WordPress filesystem
require_once(ABSPATH . 'wp-admin/includes/file.php');
WP_Filesystem();
global $wp_filesystem;
$wp_filesystem->put_contents($file, $content);
🔧 Essential WordPress Functions¶
Common Functions¶
// Get and set options
get_option('option_name', 'default');
update_option('option_name', 'value');
delete_option('option_name');
// Post functions
get_post(123);
wp_insert_post($post_data);
wp_update_post($post_data);
wp_delete_post(123);
// User functions
get_current_user_id();
wp_get_current_user();
is_user_logged_in();
// URL functions
home_url('/path');
site_url('/path');
admin_url('admin.php?page=my-plugin');
plugins_url('assets/js/script.js', __FILE__);
// Localization
__('Text to translate', 'textdomain');
_e('Text to echo', 'textdomain');
📦 Recommended WordPress Plugins for Development¶
Install these from WordPress.org:
- Query Monitor - Debugging and profiling
- User Switching - Switch between user accounts
- WP Crontrol - Manage WordPress cron jobs
- WP Console - In-dashboard PHP console
- WP Mail Logging - Log all emails sent by WordPress
🎓 Learning Projects¶
Beginner Projects¶
- Simple contact form plugin
- Custom post type plugin
- Widget plugin
- Shortcode plugin
Intermediate Projects¶
- Custom admin page with settings
- REST API endpoint plugin
- Custom Gutenberg block
- WooCommerce extension
Advanced Projects¶
- Multi-vendor marketplace feature
- Custom payment gateway
- Complex booking system
- Integration with external APIs
Certification & Courses¶
Free Resources:
- WordPress.tv - Video tutorials
- Learn WordPress - Official learning platform
Paid Courses:
WordPress Developer Checklist¶
- Understand WordPress architecture
- Master hooks (actions & filters)
- Learn WP-CLI
- Build custom plugins
- Develop custom themes
- Create Gutenberg blocks
- Understand WooCommerce basics
- Learn Dokan multi-vendor concepts
- Follow WordPress coding standards
- Implement security best practices
- Use debugging tools effectively
Additional Resources¶
Next Steps:
- Set up WordPress locally with Laravel Herd
- Explore the admin dashboard
- Build your first simple plugin
- Learn WP-CLI commands
- Study WordPress hooks
- Create a Gutenberg block
Time to Master: 3-6 months of consistent practice
See also: