اگر میخواهید قالب وردپرس را سفارشیسازی کنید اما بعد از بروزرسانی قالب، تغییراتتان از بین نرود، پوسته فرزند (Child Theme) تنها راه حرفهای است. در این آموزش گامبهگام میبینیم پوسته فرزند چیست، چطور آن را میسازیم و چطور از آن برای سفارشیسازی امن استفاده میکنیم.
پوسته فرزند چیست؟
پوسته فرزند یک قالب ثانویه است که ارثبری از قالب اصلی (Parent Theme) میکند. یعنی از تمام فایلها، استایلها و توابع قالب والد استفاده میکند، اما تغییرات و سفارشیسازیها فقط در پوسته فرزند نوشته میشوند.
مزیت کلیدی این روش: وقتی قالب اصلی بهروزرسانی میشود، فایلهای والد بازنویسی میشوند اما فایلهای پوسته فرزند دستنخورده باقی میمانند. بنابراین سفارشیسازیهای شما همچنان کار میکنند.
چرا باید از پوسته فرزند استفاده کنیم؟
- حفظ تغییرات بعد از بروزرسانی: مهمترین دلیل استفاده
- ایمنی در تست: اگر تغییرات را خراب کنید، به راحتی پوسته فرزند را غیرفعال میکنید
- یادگیری ساختار وردپرس: فرصت خوبی برای آشنایی با توابع و هوکهای وردپرس
- کد تمیز و سازماندهیشده: تغییرات شما در یک مکان مشخص و قابل ردیابی است
ساخت پوسته فرزند به صورت دستی — گامبهگام
مرحله ۱: ساخت پوشه پوسته فرزند
از طریق File Manager یا FTP به مسیر /wp-content/themes/ بروید. یک پوشه جدید با نامی مشابه پوسته اصلی بسازید، مثلاً اگر قالب والد astra است:
/wp-content/themes/astra-child/
مرحله ۲: ساخت فایل style.css
داخل پوشه جدید، فایلی به نام style.css بسازید و این کد را داخل آن قرار دهید:
/*
Theme Name: Astra Child
Theme URI: https://example.com/astra-child/
Description: پوسته فرزند برای قالب Astra
Author: نام شما
Author URI: https://example.com/
Template: astra
Version: 1.0.0
*/
نکته مهم: مقدار Template باید دقیقاً با نام پوشه قالب والد یکی باشد.
مرحله ۳: ساخت فایل functions.php
فایل functions.php را در همان پوشه بسازید. این فایل برای بارگذاری استایل والد ضروری است:
<?php
function astra_child_enqueue_styles() {
wp_enqueue_style( 'parent-style',
get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array('parent-style'),
wp_get_theme()->get('Version') );
}
add_action( 'wp_enqueue_scripts', 'astra_child_enqueue_styles' );
مرحله ۴: فعالسازی از داشبورد
به مسیر نمایش → پوستهها در پنل وردپرس بروید. پوسته فرزند را میبینید. روی «فعالسازی» کلیک کنید.
ساخت پوسته فرزند با افزونه (روش سادهتر)
اگر با کد راحت نیستید، افزونههای زیر این کار را در چند کلیک انجام میدهند:
- Child Theme Configurator: قدرتمند و پرامکانات، برای سفارشیسازی پیشرفته
- Generate Child Theme: سادهترین گزینه، فقط یک دکمه و پوسته فرزند آماده است
- WP Child Theme Generator: گزینه سبک و رایگان
بعد از نصب یکی از این افزونهها، قالب والد را انتخاب میکنید و با یک کلیک پوسته فرزند تولید و فعال میشود.
سفارشیسازی در پوسته فرزند
تغییر استایل (CSS)
هر قانون CSS که مینویسید در style.css پوسته فرزند، اولویت بالاتری نسبت به والد دارد. برای مثال برای تغییر رنگ پسزمینه هدر:
.site-header {
background-color: #f8f9fa;
}
جایگزینی فایل قالب
اگر میخواهید فایل خاصی از قالب والد را تغییر دهید (مثلاً header.php)، فایل والد را کپی کنید و در پوسته فرزند قرار دهید. وردپرس بهطور خودکار نسخه پوسته فرزند را ترجیح میدهد.
افزودن تابع سفارشی
در functions.php پوسته فرزند میتوانید توابع جدید اضافه کنید یا توابع والد را بازنویسی کنید:
function my_custom_function() {
// کد سفارشی شما
}
add_action( 'init', 'my_custom_function' );
نکات مهم و اشتباهات رایج
- Template نام پوشه است، نه عنوان: در
style.cssمقدار Template باید نام پوشه والد باشد (حروف کوچک، بدون فاصله) - از کپی کامل functions.php والد خودداری کنید: فقط توابعی که میخواهید تغییر دهید را اضافه کنید
- پیش از حذف پوسته فرزند از سایت لایو، بکآپ بگیرید: چون تغییرات CSS و قالب ناپدید میشوند
- Screenshot اختیاری: یک فایل
screenshot.pngبا اندازه ۱۲۰۰×۹۰۰ پیکسل در پوسته فرزند قرار دهید تا در داشبورد قابل تشخیص باشد
پوسته فرزند و صفحهسازها
اگر از Elementor، Divi یا سایر صفحهسازها استفاده میکنید، باید بدانید که اینها معمولاً دادهها را در دیتابیس ذخیره میکنند، نه در فایلهای قالب. بنابراین پوسته فرزند برای سفارشیسازی بصری در Elementor معمولاً ضروری نیست — اما برای سفارشیسازیهای CSS عمیق و hookهای PHP همچنان ارزشمند است.
🚀 هاست وردپرس مناسب توسعه
محیط استیجینگ، FTP سریع و دسترسی SSH — همه چیز برای توسعه پوسته در هاست وردپرس میهن هاستینگ.
پرسشهای متداول
اگر پوسته فرزند را غیرفعال کنم چه میشود؟
سایت به قالب والد برمیگردد و همه سفارشیسازیهای شما موقتاً ناپدید میشوند. با فعالسازی مجدد، تغییرات بازمیگردند.
آیا پوسته فرزند روی سرعت سایت تأثیر منفی دارد؟
تأثیر قابل توجهی ندارد. فقط یک فایل CSS اضافی بارگذاری میشود که معمولاً کمتر از ۲ کیلوبایت است.
چند پوسته فرزند میتوانم داشته باشم؟
محدودیت ندارد، اما فقط یکی در هر لحظه میتواند فعال باشد. برخی افراد چند پوسته فرزند برای تستهای مختلف نگه میدارند.
پوسته فرزند روی قالبهای Block Theme کار میکند؟
بله، اما ساختار کمی متفاوت است. در Block Themes، میتوانید theme.json را در پوسته فرزند override کنید که راه قدرتمندی برای سفارشیسازی توکنهای طراحی است.
مقالات مرتبط
- 📖 آموزش ساخت افزونه وردپرس — توسعه امن وردپرس با افزونه
- 📖 نصب وردپرس Multisite — راهاندازی شبکه سایت
- 📖 بهترین صفحهسازهای وردپرس — جایگزین سفارشیسازی پوسته با صفحهساز