Child Theme یه پوسته فرزنده که از یه Parent Theme ارث میگیره. تغییرات شما در Child ذخیره میشن و آپدیت Parent چیزی رو خراب نمیکنه.

چرا Child Theme؟

حفظ تغییرات: با آپدیت Parent
Safe Development: تست بدون خطر
Version Control: Git-friendly
Modularity: تفکیک تغییرات

ساختار Child Theme

wp-content/themes/mytheme-child/
  style.css
  functions.php
  screenshot.png

style.css

/*
Theme Name: MyTheme Child
Template: mytheme
Version: 1.0.0
*/

Template اسم Parent هست.

functions.php

<?php
add_action('wp_enqueue_scripts', function() {
  wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
  wp_enqueue_style('child-style', get_stylesheet_uri());
});

Activate

Appearance → Themes → Activate Child Theme.

Override Template

فایل header.php رو در Child کپی کنید. تغییر بدید. Child اولویت داره.

Custom Functions

در functions.php بذارید:
add_action('init', function() {
  // کد شما
});

Custom CSS

در style.css بذارید. جایگزین CSS اصلی میشه.

Custom JS

در Child JS بذارید:
wp_enqueue_script('child-js', get_stylesheet_directory_uri() . '/js/custom.js');

Override Function

اگه Parent function رو با function_exists check کرده:
if (!function_exists('parent_function')) { ... }

Custom Post Type

در Child بسازید تا با تغییر تم گم نشه.

Hooks

add_action، add_filter در Child بذارید.

Full Site Editing (FSE)

در FSE Themes، Child Theme متفاوته:
templates/
parts/
theme.json

theme.json Override

در Child یه theme.json بذارید که Parent رو Override کنه.

Debug

WP_DEBUG رو true کنید. خطاها رو ببینید.

پلاگین‌های Child Theme

Child Theme Configurator: خودکار
WPS Child Theme Generator: ساده

Version Control

Child Theme رو Git کنید. تیم و بک‌آپ.

Migration

Child رو با یه پلاگین Export/Import منتقل کنید.

Common Issues

Parent Style لود نمیشه

functions.php رو چک کنید. wp_enqueue_style درسته؟

Child تغییری نمیده

Cache pak کنید.

Broken Theme

Template در style.css درسته؟ اسم Parent؟

Custom Widget

در Child ثبت کنید:
register_widget('MyWidget');

Menu

register_nav_menu('main-menu', 'Main Menu');

Best Practices

Comment کد: چرا تغییر دادید
Version: مدیریت
Backup: قبل تغییر
Test: Staging

Frameworks

Genesis: Child theme محبوب
Astra: Child theme پیش‌فرض
GeneratePress: قابل تنظیم

سباهاست

هاست وردپرس سباهاست از Child Theme پشتیبانی کامل داره.

جمع‌بندی

Child Theme اصولی‌ترین راه سفارشی‌سازی تم وردپرسه. با ساخت درست، سفارشی‌سازی امن و پایدار داشته باشید.