چرا از چایلد تم استفاده کنیم؟ این سؤال را در جلسه‌های مشاوره زیاد می‌شنوم و اکثر مواقع کسی که می‌پرسد، پیش از پاسخ من جوابش را می‌داند؛ فقط منتظر تأیید یک متخصص است. من هم هر بار به یک تجربه تلخ برمی‌گردم: پروژه‌ای که سال دوم به آن برگشتم و دیدم تمام سفارشی‌سازی‌های طراحی، پس از یک آپدیت قالب، بی‌سروصدا پاک شده‌اند. مشتری فقط گفته بود «رنگ سایت عوض شده» ولی پشت آن جمله ساده، شش ماه کار سفارشی‌سازی از بین رفته بود.

اگر تازه با مفهوم قالب آشنا می‌شوید، پیش از ادامه قالب وردپرس چیست و چگونه قالب مناسب انتخاب کنیم را بخوانید. این نوشته، لایه بیمه‌ای همان بحث است: از مکانیزم ارث‌بری تا مقایسه با اسنیپت افزونه و دام‌هایی که در پروژه‌های واقعی به آن‌ها خورده‌ام. برای نسخه چک‌لیستی و پایه، قالب وردپرس چایلد چیست و چه زمانی به آن نیاز داریم مرجع کوتاه‌تری است.

چایلد تم چیست و دقیقاً چه چیزی را به ارث می‌برد؟

چایلد تم یا Child Theme (قالب فرزند) یک قالب ثانویه است که روی یک قالب دیگر — که به آن Parent Theme (قالب والد) می‌گویند — سوار می‌شود. مکانیزم کار این است که قالب فرزند، تمام فایل‌های قالب والد را به ارث می‌برد و فقط همان فایل‌ها یا بخش‌هایی را که شما صریحاً بازنویسی می‌کنید، جایگزین می‌کند. یعنی ظاهر و رفتار کلی سایت، همان والد باقی می‌ماند و شما فقط لایه سفارشی‌سازی خودتان را روی آن می‌نشانید.

یک مثال عینی که ملموس‌بودنش کمک می‌کند: فرض کنید می‌خواهید رنگ دکمه‌های قالب را از آبی به قرمز تغییر دهید. اگر این کار را در style.css قالب والد بنویسید، اولین آپدیت قالب — که شاید هفته بعد بیاید — تمام آن تغییر را پاک می‌کند. اگر همین تغییر را در style.css قالب فرزند بنویسید، قالب والد در پس‌زمینه آپدیت می‌شود و کد شما در فرزند، دست‌نخورده می‌ماند. این تفاوت ظاهراً کوچک، مرز بین یک سایت قابل نگهداری و یک سایت پرهزینه است.

چه چیزی از والد به ارث می‌رسد

ارث‌بری در چایلد تم در سه لایه اتفاق می‌افتد که درکشان ضروری است. لایه اول فایل‌های قالب است: هر فایل PHP در والد (مثل header.php، single.php، archive.php) به‌طور خودکار در فرزند قابل استفاده است مگر اینکه نسخه‌ای از آن را در فرزند بسازید. لایه دوم توابع است: تمام توابعی که در functions.php والد تعریف شده‌اند، در فرزند در دسترس هستند و از طریق هوک‌ها می‌توانید رفتارشان را تغییر دهید یا کنارشان بگذارید. لایه سوم، تنظیمات ظاهری است که در دیتابیس ذخیره شده‌اند و مستقل از فایل‌ها باقی می‌مانند.

این ساختار سه‌لایه، دقیقاً همان چیزی است که در ساختار فایل‌های یک قالب استاندارد وردپرس به‌عنوان منطق پایه قالب معرفی شده. تفاوت مهم این است که در چایلد تم، فایل‌ها فقط وقتی جایگزین می‌شوند که همان نام را داشته باشند؛ نسخه فرزند، اولویت دارد و نسخه والد، پشتیبان است.

چایلد تم یک لایه نازک روی قالب والد است؛ هرچه ضخیم‌ترش کنید، نگهداری‌اش سخت‌تر می‌شود، ولی هرگز نباید ضخامتش صفر شود.

دست‌کاری مستقیم قالب والد؛ قاتل خاموش سفارشی‌سازی

تجربه میدانی من این است که بیشتر توسعه‌دهندگان تازه‌کار، حتی وقتی می‌دانند چایلد تم چیست، باز هم مستقیم در قالب والد تغییر می‌دهند. دلیلش ساده است: نصب چایلد تم دو دقیقه وقت می‌گیرد و آن دو دقیقه در لحظه‌ای که مشتری روی سرتان نفس می‌کشد، سنگین به نظر می‌رسد. اما هزینه واقعی این تنبلی، در اولین آپدیت قالب پرداخت می‌شود.

سه سناریوی واقعی که در پروژه‌ها دیده‌ام

سناریوی اول: سایتی که سفارشی‌سازی رنگ برند در style.css والد نوشته شده بود. آپدیت امنیتی قالب منتشر شد و مدیر سایت بدون دانستن عواقب، آپدیت را زد. نتیجه این بود که تمام رنگ‌های برند به حالت پیش‌فرض برگشت. بازگردانی این سفارشی‌سازی، دو روز کار لازم داشت چون در فایل‌ها هیچ سابقه‌ای از تنظیمات قبلی نمانده بود.

سناریوی دوم: تغییر در functions.php والد برای افزودن نوع نوشته سفارشی. با آپدیت بعدی، هم کد از بین رفت و هم فایل دست‌کاری‌شده. بدترین بخش، پیامدی است که در رفع خطای Parse error در functions.php توضیح داده‌ام: یک اشتباه کوچک در سینتکس، کل سایت را با صفحه سفید از کار می‌اندازد. در چایلد تم، این ریسک به فایل فرزند محدود می‌شود و بازگردانی با حذف یک فایل انجام می‌گیرد.

سناریوی سوم: حذف و نصب دوباره قالب برای رفع مشکل، بدون توجه به این نکته که نسخه دست‌کاری‌شده از بین می‌رود. این الگو بیشتر در تیم‌هایی دیده می‌شود که هنوز با کنترل نسخه (Version Control) کار نمی‌کنند و روش «حذف و نصب مجدد» را راه‌حل سریع می‌دانند. اگر از Git یا هر سیستم کنترل نسخه دیگری استفاده می‌کنید، این ریسک کاهش پیدا می‌کند ولی حذف نمی‌شود.

هر خط کدی که در قالب والد می‌نویسید، یک یادداشت چسبان روی یخ است؛ اولین آپدیت، آن را آب می‌کند.

مکانیزم ارث‌بری و ترتیب بارگذاری فایل‌ها

درک دقیق مکانیزم ارث‌بری، تفاوت بین استفاده سطحی از چایلد تم و استفاده حرفه‌ای از آن است. وقتی وردپرس قالب فعال را لود می‌کند، برای هر فایل PHP این ترتیب را دنبال می‌کند: ابتدا در پوشه قالب فرزند نگاه می‌کند؛ اگر فایل را پیدا نکرد، سراغ پوشه قالب والد می‌رود. این منطق که به آن File Override (بازنویسی فایل) می‌گویند، بنیان کار همه سیستم‌های وراثت قالب است.

نمونه عملی بازنویسی header.php

فرض کنید در header.php والد می‌خواهید یک نوار اطلاع‌رسانی اضافه کنید. راه درست، کپی فایل والد به فرزند و اضافه کردن نوار است؛ ولی این کپی، شما را در معرض یک مشکل قرار می‌دهد: اگر والد در آپدیت بعدی header.php خودش را عوض کند، نسخه فرزند شما آن تغییر را نمی‌بیند. این پدیده که به آن «انحراف از والد» می‌گویند، دلیل اصلی توصیه من است که فایل‌های PHP والد را فقط زمانی بازنویسی کنید که هیچ راه دیگری وجود ندارد.

به‌جای بازنویسی header.php، راه بهتر این است که از هوک‌های والد استفاده کنید. اگر والد در header.php خود تابع do_action( 'my_theme_before_header' ) را فراخوانی کرده باشد، می‌توانید همان نوار را از functions.php فرزند و با add_action اضافه کنید. این رویکرد که در نحوه استفاده صحیح از هوک‌های وردپرس به‌تفصیل توضیح داده شده، هم تغییر شما را حفظ می‌کند هم انحراف از والد را به صفر می‌رساند.

بارگذاری استایل‌ها به ترتیب صحیح

یکی از دام‌های اصلی چایلد تم که در تیم‌های تازه‌کار زیاد دیده‌ام، بارگذاری اشتباه استایل‌ها است. اگر style.css فرزند را بدون وابستگی به والد بارگذاری کنید، ممکن است ترتیب بارگذاری تصادفی شود و استایل شما قبل یا بعد از والد لود شود. الگوی درست، مشخص کردن handle والد به‌عنوان dependency است:

function my_child_enqueue() {
    wp_enqueue_style(
        'my-child-style',
        get_stylesheet_uri(),
        [ 'my-parent-style' ],
        wp_get_theme()->get( 'Version' )
    );
}
add_action( 'wp_enqueue_scripts', 'my_child_enqueue', 20 );

دقت کنید که handle والد باید دقیقاً همان نامی باشد که در افزونه یا والد برای استایل انتخاب شده است. یکی از اشتباهات رایج، استفاده از get_template_directory_uri() به‌جای get_stylesheet_uri() در چایلد تم است. تابع اول مسیر قالب والد را برمی‌گرداند و تابع دوم مسیر قالب فعال را — که در چایلد تم، همان قالب فرزند است.

روش دیگری که در قالب‌های مینیمال دیده‌ام، استفاده از @import در ابتدای فایل فرزند برای لود والد است. این رویکرد از نظر کارکردی کار می‌کند ولی از نظر سرعت، ضعیف‌تر از wp_enqueue_style است چون ترتیب لود CSS را در سطح مرورگر مدیریت می‌کند نه در سطح وردپرس. برای سایت‌هایی که به Core Web Vitals (شاخص‌های اصلی وب) اهمیت می‌دهند، روش enqueue گزینه درست است.

مزایای چایلد تم در پروژه‌های واقعی

تا اینجا بحث فنی بود؛ حالا می‌خواهم فهرست مزایای واقعی را به زبان پروژه‌ای بگویم، همان چیزهایی که در جلسه مشاوره با مشتری‌ها روی میز می‌گذارم.

سفارشی‌سازی ماندگار در آپدیت‌ها

مزیت اول و مهم‌ترین مزیت، همان موضوع اصلی این نوشته است: سفارشی‌سازی شما با آپدیت والد از بین نمی‌رود. در پروژه‌های مشتری، این تفاوت مستقیم با هزینه ترجمه می‌شود. تجربه من این است که سایت‌هایی که از چایلد تم استفاده می‌کنند، در میانگین سالانه حدود نیمی از بودجه نگهداری کمتری صرف ترمیم سفارشی‌سازی‌های از دست‌رفته می‌کنند.

امکان بازگشت به والد با حذف یک پوشه

اگر سفارشی‌سازی فرزند مشکلی ایجاد کرد، شما می‌توانید موقتاً قالب فرزند را غیرفعال کنید و والد را فعال کنید. این بازگشت یک‌مرحله‌ای، در شرایط اضطراری که سایت با مشکل نمایش روبرو شده، ارزش طلا دارد. در مقابل، اگر تغییرات را در والد نوشته باشید، بازگشت به حالت اول فقط از طریق بکاپ ممکن است و بکاپ، تمام محتوای جدید را هم برمی‌گرداند.

جداسازی کد مشتری از کد فروشنده

وقتی مشتری قالبی را می‌خرد، خرید او شامل پشتیبانی از کد والد است. اگر در والد تغییر بدهید، سازنده قالب در تیکت پشتیبانی، دست شما را کوتاه می‌کند چون نمی‌تواند تفاوت کد اصلی و کد شما را تشخیص دهد. چایلد تم این مرز را شفاف می‌کند: کد شما در پوشه فرزند است و سازنده فقط روی کد اصلی خودش کار می‌کند. این تفکیک، در مواقعی که نیاز به تیکت پشتیبانی دارید، تفاوت بین پاسخی سریع و پاسخی دو هفته‌ای ایجاد می‌کند.

پایه‌ای برای کنترل نسخه

چایلد تم، به‌طور طبیعی با کنترل نسخه سازگار است. شما فقط پوشه فرزند را در مخزن نگه می‌دارید و والد را از مخزن رسمی یا سازنده دریافت می‌کنید. این رویکرد که در گیت در وردپرس توضیح داده‌ام، حجم مخزن را کم می‌کند و تاریخچه تغییرات را شفاف نگه می‌دارد. در پروژه‌های تیمی، این تفاوت بین یک مخزن ۵۰۰ مگابایتی و یک مخزن ۵۰ مگابایتی است.

معیارویرایش مستقیم والدچایلد تم
ماندگاری در آپدیتاز بین می‌رودحفظ می‌شود
پشتیبانی سازنده قالبرد می‌شوددر دسترس است
بازگشت اضطرارینیاز به بکاپغیرفعال‌سازی فرزند
کنترل نسخهسنگین و پیچیدهسبک و شفاف
سازگاری با آپدیت‌های خودکارپرخطرامن

چایلد تم در برابر افزونه اسنیپت

یکی از سؤالاتی که زیاد می‌شنوم این است: «چرا از افزونه اسنیپت استفاده نکنم که همان کار را می‌کند؟» پاسخ کوتاه این است که این دو ابزار، برای دو نوع سفارشی‌سازی متفاوت طراحی شده‌اند و خلط آن‌ها، پیامد بدی دارد.

کجا چایلد تم درست است

چایلد تم برای سفارشی‌سازی‌های ظاهری و ساختاری درست است: تغییر رنگ و فونت، بازچینی بخش‌ها، اضافه کردن المان‌های نمایشی، تغییر الگوی رندر یک نوع پست خاص. هر چیزی که در لایه نمایش سایت اتفاق می‌افتد، جای طبیعی‌اش چایلد تم است. مقاله چگونه قالب آماده را سفارشی کنیم همین مسیر را گام‌به‌گام باز کرده است.

کجا اسنیپت افزونه درست است

اسنیپت افزونه برای منطق‌های مستقل از ظاهر درست است: تغییر رفتار یک افزونه دیگر، افزودن قابلیت جدید، فیلتر کردن خروجی یک تابع هسته وردپرس. اگر قابلیت شما قرار است بعد از تغییر قالب هم باقی بماند، جای درستش افزونه است نه چایلد تم. برای فهرست قطعه‌کدهای پرکاربرد، قطعه کد وردپرس چیست و چگونه از آن استفاده کنیم راهنمای مرتبطی است.

قاعده تجربی من: اگر کد شما به فایل‌های PHP قالب وابسته است، چایلد تم؛ اگر مستقل از قالب است و در هر قالب دیگری هم کار می‌کند، افزونه. یک مثال روشن که در پروژه‌ها زیاد دیده‌ام: تغییر عرض ستون محتوا در single.php → چایلد تم. تغییر فرمت ایمیل‌های ارسالی سایت → افزونه.

چایلد تم برای لایه نمایش، افزونه برای لایه منطق؛ هر تلاشی برای جابه‌جا کردن این دو، هزینه بلندمدت دارد.

چه زمانی چایلد تم انتخاب غلط است؟

برای اینکه تصویر کامل باشد، جاهایی را هم بگویم که چایلد تم انتخاب بهینه نیست. تجربه‌ام این است که این نکته کمتر گفته می‌شود و باعث می‌شود بعضی تیم‌ها به‌طور مکانیکی برای هر پروژه‌ای چایلد تم بسازند.

قالب‌هایی که چایلد تم را رسماً پشتیبانی نمی‌کنند

بعضی قالب‌های حرفه‌ای — مخصوصاً قالب‌هایی که از سازنده صفحه اختصاصی خودشان استفاده می‌کنند — ساختار پوشه‌بندی‌شان با استاندارد وردپرس تفاوت دارد و چایلد تم رسمی ندارند. در این حالت، ساخت چایلد تم بی‌فایده است چون مکانیزم ارث‌بری کار نمی‌کند. راه‌حل درست، استفاده از اسنیپت افزونه یا پنل سفارشی‌سازی خود قالب است.

وقتی از تنظیمات داخلی قالب کافی است

اگر نیاز شما با تنظیمات Customizer یا پنل قالب برطرف می‌شود — تغییر لوگو، رنگ، فونت از پیش تعریف‌شده — چایلد تم پیچیدگی اضافه است. این تنظیمات در دیتابیس ذخیره می‌شوند و آپدیت قالب آن‌ها را پاک نمی‌کند. من در پروژه‌های کوچک، ابتدا چک می‌کنم که آیا نیاز مشتری با پنل حل می‌شود یا نه و در اکثر موارد، پاسخ بله است.

پروژه‌هایی که قرار است کل قالب اختصاصی باشد

اگر قالب را از صفر می‌نویسید و قرار نیست از قالب دیگری ارث ببرید، چایلد تم معنا ندارد. مفهوم چایلد تم فقط وقتی معنا دارد که یک والد وجود داشته باشد. در پروژه‌های قالب اختصاصی، ساختار پوشه و نام‌گذاری فایل‌ها، همان چیزی است که در توسعه قالب وردپرس از صفر توضیح داده شده.

یک تصمیم مرتبط که پیش از ساختن چایلد تم ارزش بررسی دارد: انتخاب بین قالب آماده و قالب اختصاصی. اگر بودجه و زمان پروژه اجازه می‌دهد و نیاز مشتری با تغییرات جزئی برطرف نمی‌شود، گاهی مسیر اقتصادی‌تر، ساخت قالب اختصاصی است نه چایلد تم روی یک قالب سنگین. مقایسه دقیق این دو مسیر در قالب آماده در مقابل قالب اختصاصی آمده است.

ساختار حداقلی و حرفه‌ای یک چایلد تم

حالا که بحث مزایا و مرزها را پوشش دادیم، برویم سراغ ساختن. یک چایلد تم حداقلی، دو فایل لازم دارد؛ یک چایلد تم حرفه‌ای، سه تا چهار فایل.

فایل style.css با هدر فرزند

کلید تشخیص چایلد تم از یک قالب معمولی، کلید Template در هدر است. این کلید باید دقیقاً برابر نام پوشه والد باشد — نه نام نمایشی قالب. یک اشتباه رایج، استفاده از نام نمایشی والد در این کلید است که باعث می‌شود وردپرس والد را پیدا نکند:

/*
Theme Name: My Child Theme
Template:   astra
Version:    1.0.0
Author:     Your Name
Text Domain: my-child-theme
*/

نکته دیگر اینکه معمولاً استایل اصلی والد در فایل functions.php فرزند enqueue می‌شود، نه با @import در بالای فایل CSS. اگر فایل style.css فرزند را خالی بگذارید و در functions.php والد را لود کنید، ترتیب بارگذاری شفاف‌تر و سرعت لود بالاتر می‌شود. اگر ساختار والد را دقیق نمی‌دانید، پیشنهاد می‌کنم پیش از شروع، فایل‌های ضروری یک قالب وردپرس را بخوانید تا نقشه والد روشن باشد.

فایل functions.php فرزند

فایل functions.php فرزند، محل اصلی کد شماست. الگوی درستی که در همه پروژه‌ها رعایت می‌کنم، استفاده از هوک wp_enqueue_scripts با اولویت مناسب و لود شرطی استایل‌ها است. الگوی کامل در بخش «مکانیزم ارث‌بری» همین مقاله آمده بود؛ نکته تکمیلی این است که در چایلد تم، توابع والد به‌طور خودکار در دسترس هستند و نیازی به require کردن فایل والد نیست. یعنی می‌توانید توابع والد را در هوک‌ها صدا بزنید و رفتارشان را تغییر دهید.

پوشه assets و screenshot

پوشه assets/ فرزند، محل نگهداری CSS، JS و تصاویر اختصاصی شماست. قاعده‌ای که خودم رعایت می‌کنم: هیچ فایل asset خارج از این پوشه نگه‌داری نشود، حتی اگر یک خط CSS باشد. این نظم، در پروژه‌هایی که بعداً به تیم دیگری تحویل داده می‌شوند، ارزش مستقیم دارد. فایل screenshot.png فرزند هم کمک می‌کند در پیشخوان، فرزند از والد به‌سرعت تشخیص داده شود.

اشتباهات رایجی که چایلد تم را بی‌اثر می‌کند

تجربه بازبینی چایلد تم‌های زیادی در پروژه‌های مشتری به من نشان داده که این اشتباهات، چایلد تم را عملاً بی‌اثر می‌کنند و کاربر فکر می‌کند در چایلد تم کار می‌کند درحالی‌که در واقع دارد در والد تغییر می‌دهد.

  • اشتباه در کلید Template: اگر نام پوشه والد را غلط بنویسید، وردپرس فرزند را می‌شناسد ولی نمی‌تواند والد را پیدا کند و سایت با خطای مرگ می‌افتد.
  • فعال نکردن چایلد تم: ساخت پوشه کافی نیست؛ باید در پیشخوان وردپرس قالب فرزند را فعال کنید. اگر والد فعال باشد، تغییرات فرزند اعمال نمی‌شود.
  • کپی کردن همه فایل‌های والد در فرزند: این کار چایلد تم را به یک والد دوم تبدیل می‌کند و مزایای ارث‌بری را از بین می‌برد. قاعده: فقط فایل‌هایی که واقعاً تغییر می‌دهید را کپی کنید.
  • ویرایش مستقیم فایل والد از طریق پیشخوان: ویرایشگر قالب در پیشخوان وردپرس، فایل‌های والد را تغییر می‌دهد نه فرزند. همیشه از FTP یا SSH استفاده کنید تا مطمئن شوید فایل در پوشه فرزند است.
  • Text Domain تکراری: اگر Text Domain فرزند را همان والد بگذارید، ترجمه‌های فرزند روی ترجمه‌های والد بازنویسی می‌شوند و رفتار غیرمنتظره‌ای می‌سازند.
  • لود نکردن style.css فرزند: اگر استایل فرزند را enqueue نکنید، تغییرات CSS شما در مرورگر دیده نمی‌شود. این اشتباه، در اولین پروژه چایلد تم هر توسعه‌دهنده‌ای رخ می‌دهد.

در میان این فهرست، مورد سوم بیشتر از همه تکراری است. توسعه‌دهندگان تازه‌کار به این دلیل که فکر می‌کنند «کپی همه‌چیز، امن‌تر است»، کل والد را در فرزند کپی می‌کنند و بعد تغییرات را در نسخه فرزند اعمال می‌کنند. آن‌وقت وقتی والد آپدیت می‌شود، نسخه فرزند کپی‌شده دیگر هماهنگ با والد نیست و به مرور، انحراف آن‌ها بیشتر می‌شود. این همان الگویی است که در اشتباهات رایج توسعه وردپرس به‌عنوان یکی از پرهزینه‌ترین اشتباهات معماری معرفی شده.

مورد چهارم هم در پروژه‌هایی که مدیر سایت دسترسی به ویرایشگر قالب دارد، منبع دردسر است. من در همه پروژه‌های مشتری، ویرایشگر فایل پیشخوان را غیرفعال می‌کنم؛ روش استاندارد این کار در چگونه کدهای سفارشی به وردپرس اضافه کنیم توضیح داده شده است. این یک خط کد ساده، جلوی بسیاری از فاجعه‌های تولیدشده در ساعات پایانی کار را می‌گیرد.

پرسش‌های پرتکرار درباره چایلد تم وردپرس

چایلد تم با آپدیت والد، سفارشی‌سازی‌ها را حفظ می‌کند؟ بله. تمام فایل‌های PHP و CSS که در پوشه فرزند قرار دارند، هنگام آپدیت والد دست‌نخورده باقی می‌مانند. تنها ریسک، بازنویسی فایل‌های والد توسط نسخه فرزند است که اگر آن فایل‌ها در والد تغییر کرده باشند، تغییرات والد را در آن نقطه نمی‌بینید.

آیا باید چایلد تم را قبل از شروع سفارشی‌سازی بسازم یا بعد؟ همیشه قبل. اگر ابتدا سفارشی‌سازی را در والد انجام دهید و بعد چایلد تم بسازید، باید تغییرات را از والد برداشته و به فرزند منتقل کنید — که اگر جایی از قلم بیفتد، منبع باگ‌های مبهم است. حتی برای یک خط CSS، ابتدا چایلد تم، بعد سفارشی‌سازی.

تفاوت چایلد تم با اسنیپت افزونه چیست؟ چایلد تم برای لایه نمایش و اسنیپت افزونه برای لایه منطق. اگر کد شما به فایل‌های PHP قالب وابسته است، چایلد تم. اگر مستقل از قالب است و در هر قالبی کار می‌کند، افزونه. تصمیم اشتباه در این مورد، در روز تغییر قالب هزینه‌اش را نشان می‌دهد.

آیا هر قالب وردپرس از چایلد تم پشتیبانی می‌کند؟ نه. قالب‌هایی که ساختار پوشه استاندارد دارند از چایلد تم پشتیبانی می‌کنند. قالب‌هایی که از صفحه‌ساز اختصاصی یا معماری متفاوت استفاده می‌کنند، معمولاً چایلد تم رسمی ندارند. پیش از ساخت چایلد تم، مستندات قالب را چک کنید یا در پنل قالب، گزینه «Child Theme» را جستجو کنید.

آیا با چایلد تم می‌توانم فایل‌های قالب والد را تغییر دهم؟ فقط از طریق بازنویسی. اگر فایلی به همان نام در پوشه فرزند بسازید، نسخه فرزند جایگزین والد می‌شود. اگر فایلی را در فرزند نسازید، نسخه والد استفاده می‌شود. ویرایش مستقیم فایل والد از پوشه فرزند امکان‌پذیر نیست چون آن‌ها فایل‌های جدا هستند.

آیا با چایلد تم می‌توانم توابع والد را تغییر دهم؟ بله، ولی باید از هوک‌های والد استفاده کنید. اگر والد تابعی را بدون هوک صدا می‌زند، نمی‌توانید مستقیم تغییرش دهید. راه‌حل در این حالت، بازنویسی فایل والد در فرزند است که به آن «انحراف از والد» می‌گویند و بهتر است از آن پرهیز کنید مگر ضروری باشد.

چایلد تم چطور روی Core Web Vitals اثر می‌گذارد؟ اگر درست enqueue کنید، اثر منفی ندارد. مهم این است که استایل فرزند را با dependency به والد لود کنید و از @import استفاده نکنید. بارگذاری نامرتب، می‌تواند ترتیب CSS را به هم بزند و LCP (Largest Contentful Paint) را تخریب کند. برای جزئیات، Core Web Vitals چیست و چرا گوگل بر آن تاکید دارد مرجع کوتاهی است.

آیا چایلد تم روی سرعت سایت اثر می‌گذارد؟ اگر درست پیاده شود، اثرش صفر یا نزدیک به صفر است. یک فایل CSS اضافی و یک functions.php کوچک، در بودجه کارایی سایت ناچیز است. مشکل وقتی ایجاد می‌شود که چایلد تم را با کپی فایل‌های زیاد و کد سنگین بسازید.

آیا باید چایلد تم را در Git نگه دارم؟ بله، فقط پوشه فرزند را. والد در مخزن جداگانه نگه‌داری می‌شود و شما تاریخچه تغییرات سفارشی‌سازی را در مخزن فرزند دارید. این رویکرد که در گیت در وردپرس به‌عنوان الگوی استاندارد معرفی شده، حجم مخزن را سبک و بازبینی تغییرات را ساده می‌کند.

اگر سازنده قالب، چایلد تم رسمی نداشته باشد چه کار کنم؟ می‌توانید خودتان چایلد تم بسازید. تنها چیزی که نیاز دارید، نام دقیق پوشه والد است. اگر والد ساختار استاندارد دارد، چایلد تم شما کار می‌کند. اگر والد ساختار غیراستاندارد دارد، چایلد تم بی‌فایده است و بهتر است با تیم پشتیبانی سازنده مشورت کنید.

چایلد تم به‌عنوان بیمه‌نامه سفارشی‌سازی

در پایان این مسیر، یک جمع‌بندی عملی می‌خواهم بکنم که در جلسه‌های مشاوره زیاد تکرار می‌کنم: چایلد تم خرج اضافه نیست؛ بیمه‌نامه است. هر ساعت وقت اضافه‌ای که در روز اول صرف ساختن چایلد تم می‌کنید، در بلندمدت چند برابر برمی‌گردد، ولی برگشتش همیشه نامرئی است. برگشت نامرئی یعنی سایت مشتری آپدیت را بدون مشکل رد می‌کند، تیم پشتیبانی قالب بدون چالش کمک می‌کند، و شما در روز تغییر قالب، فقط یک پوشه را جابه‌جا می‌کنید نه یک هفته کار سفارشی‌سازی را.

اگر در ابتدای پروژه‌ای هستید و می‌خواهید تصمیم بگیرید، سه سؤال از خودتان بپرسید. اول: آیا قرار است در فایل‌های PHP قالب دست بزنم؟ اگر بله، چایلد تم غیرقابل مذاکره است. دوم: آیا قرار است طراحی برند روی قالب اعمال شود؟ اگر بله، چایلد تم لازم است تا با آپدیت والد از بین نرود. سوم: آیا احتمال دارد دو سال دیگر تیم عوض شود؟ اگر بله، چایلد تم به تیم بعدی نشان می‌دهد کد شما کجاست و کد قالب کجاست.

اگر تجربه‌ای از پروژه‌ای دارید که نبود چایلد تم به فاجعه تبدیل شده — یا برعکس، پروژه‌ای که با چایلد تم توانسته‌اید بدون دردسر آپدیت‌های بزرگ را رد کنید — در دیدگاه بنویسید. تجربه‌های واقعی در این موضوع، بیشتر از هر مستند رسمی به خواننده کمک می‌کنند تصمیم درست را در روز اول بگیرد. 🛡️