FA-TOOLS — Header Component

آموزش جامع ساخت چایلد تم وردپرس؛ روش استاندارد و اصول پیاده‌سازی

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

خلاصه سریع و نکات کلیدی:

  • چایلد تم تمام ویژگی‌ها و استایل‌های پوسته والد (Parent Theme) را به ارث می‌برد.
  • هرگز کدهای CSS اصلی را با دستور @import فراخوانی نکنید؛ این کار سرعت سایت را به شدت کاهش می‌دهد.
  • تنها فایل‌های ضروری برای ساخت چایلد تم، یک پوشه مجزا، style.css و functions.php هستند.
  • برای فراخوانی صحیح استایل‌ها باید از اکشن wp_enqueue_scripts در فایل functions.php استفاده کنید.

چایلد تم چیست و چرا استفاده از آن حیاتی است؟

ساخت چایلد تم وردپرس — تصویر 1

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

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

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

مقایسه ویرایش مستقیم تم اصلی با ساخت چایلد تم

ساخت چایلد تم وردپرس — تصویر 2
ویرایش مستقیم پوسته اصلی (روش نادرست) استفاده از چایلد تم (روش استاندارد)
حذف کامل تغییرات و کدها پس از هر به‌روزرسانی پوسته حفظ کامل کدهای سفارشی و تنظیمات پس از به‌روزرسانی پوسته والد
ریسک بالای ایجاد خطای Fatal Error و از دسترس خارج شدن سایت محیط ایزوله و امن؛ امکان بازگشت سریع به حالت قبل در صورت بروز خطا
سخت‌تر شدن اشکال‌زدایی و دیباگ کدها به دلیل تداخل با کدهای اصلی جداسازی دقیق کدهای سفارشی از کدهای پایه و خوانایی بالای پروژه
عدم امکان استفاده از ابزارهای کنترل نسخه (Git) به‌صورت مستقل قابلیت مدیریت نسخه و توسعه حرفه‌ای برای تیم‌های برنامه‌نویسی

پیش‌نیازها و ساختار فایل‌های اصلی

ساخت چایلد تم وردپرس — تصویر 3

برای ساخت دستی چایلد تم نیازی به دانش پیچیده برنامه‌نویسی ندارید. تنها دسترسی به مدیریت فایل‌ها (از طریق cPanel، DirectAdmin یا FTP) و یک ویرایشگر متن ساده کافی است.

چایلد تم در مسیر wp-content/themes/ در کنار سایر پوسته‌ها قرار می‌گیرد. حداقل فایل‌های مورد نیاز برای فعال‌سازی چایلد تم عبارتند از:

  • پوشه اختصاصی چایلد تم: معمولاً با نام پوسته والد به همراه پسوند -child نام‌گذاری می‌شود (مثلاً astra-child).
  • فایل style.css: حاوی اطلاعات معرفی تم به وردپرس و استایل‌های اختصاصی دستورات CSS شما.
  • فایل functions.php: برای فراخوانی صحیح استایل‌های تم والد و افزودن توابع PHP اختصاصی.
  • فایل screenshot.png (اختیاری): تصویر پیش‌نمایش چایلد تم در بخش پوسته‌های وردپرس.

آموزش گام‌به‌گام ساخت چایلد تم (دست‌ساز)

ساخت چایلد تم وردپرس — تصویر 4

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

گام اول: ایجاد پوشه جدید

وارد هاست خود شوید و به مسیر wp-content/themes بروید. یک پوشه جدید بسازید. نام این پوشه را ترجیحاً نام پوسته والد به همراه -child بگذارید. برای مثال اگر از پوسته Astra استفاده می‌کنید، نام پوشه را astra-child بگذارید. توجه داشته باشید که نام پوشه نباید دارای فاصله یا حروف بزرگ باشد.

گام دوم: ساخت فایل style.css

در داخل پوشه astra-child، یک فایل به نام style.css ایجاد کنید. کدهای زیر را درون آن کپی کرده و اطلاعات آن را متناسب با سایت خود ویرایش کنید:

/*
 Theme Name:   Astra Child
 Theme URI:    https://example.com/astra-child/
 Description:  پوسته فرزند برای قالب آسترا
 Author:       نام شما
 Author URI:   https://example.com
 Template:     astra
 Version:      1.0.0
 Text Domain:  astra-child
*/

/* استایل‌های سفارشی شما در ادامه این خط نوشته می‌شوند */
نکته بسیار مهم:

خط Template: astra حساس‌ترین بخش است. عبارت مقابل Template باید دقیقاً نام پوشه پوسته والد (با رعایت حروف کوچک و بزرگ) باشد، نه نام ظاهری پوسته.

گام سوم: ساخت فایل functions.php و فراخوانی استایل‌ها

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

<?php
/**
 * Enqueue child theme styles and scripts
 */
function my_child_theme_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', 'my_child_theme_enqueue_styles' );

گام چهارم: فعال‌سازی چایلد تم

  1. وارد پیشخوان وردپرس شوید.
  2. به مسیر نمایش > پوسته‌ها بروید.
  3. پوسته جدید با نام Astra Child را پیدا کرده و روی گزینه فعال‌سازی کلیک کنید.

نکات فنی پیشرفته: فراخوانی صحیح فایل‌ها و توابع

ساخت چایلد تم وردپرس — تصویر 5

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

  • get_template_directory_uri(): همیشه به آدرس پوشه‌ی پوسته والد اشاره می‌کند.
  • get_stylesheet_directory_uri(): به آدرس پوشه‌ی فعال فعلی (چایلد تم) اشاره می‌کند.

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

function my_child_custom_scripts() {
    wp_enqueue_script(
        'custom-js',
        get_stylesheet_directory_uri() . '/js/custom.js',
        array('jquery'),
        '1.0.0',
        true // بارگذاری در فوتر برای افزایش سرعت
    );
}
add_action( 'wp_enqueue_scripts', 'my_child_custom_scripts' );
هشدار کارایی (Performance Alert):

هرگز در فایل style.css چایلد تم از دستور @import url(...) برای فراخوانی فایل CSS پوسته والد استفاده نکنید. این کار باعث ایجاد درخواست‌های موازی زنجیره‌ای (Critical Chain Requests) شده و سرعت بارگذاری سایت (Core Web Vitals) را به‌شدت کاهش می‌دهد.

اصول بازنویسی فایل‌ها و تمپلیت‌های ووکامرس

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

برای ویرایش ساختار یک صفحه (مثلاً header.php یا footer.php):

  1. فایل مورد نظر را از پوشه پوسته والد کپی کنید.
  2. آن را عیناً در مسیر اصلی پوشه چایلد تم بگذارید.
  3. حالا فایل موجود در چایلد تم را به دلخواه خود ویرایش کنید.

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

اگر به کدهای آمادگی و کاربردی نیاز دارید، مجموعه‌ای کامل از نمونه‌ها در مخزن تکه‌کدها در دسترس شماست.

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

آیا ساخت چایلد تم باعث کاهش سرعت سایت می‌شود؟

خیر، اگر فایل‌ها به روش درست (توابع استاندارد enqueue در functions.php) فراخوانی شوند، ساخت چایلد تم هیچ تأثیر منفی بر سرعت سایت ندارد و حتی از پرشدن پوسته با کدهای ناکارآمد جلوگیری می‌کند.

آیا پس از فعال‌سازی چایلد تم، تنظیمات سفارشی‌سازی (Customizer) پاک می‌شوند؟

در برخی قالب‌ها، تنظیماتی که در بخش «سفارشی‌سازی» اعمال کرده‌اید ذخیره نمی‌شوند زیرا وردپرس چایلد تم را یک تم جدید می‌شناسد. می‌توانید با استفاده از افزونه‌های خروجی گرفتن از تنظیمات (Customizer Export/Import) یا انتقال داده‌های theme_mods، تنظیمات را منتقل کنید.

آیا می‌توانم پوسته والد را پس از فعال‌سازی چایلد تم حذف کنم؟

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

آیا تغییرات فایل functions.php چایلد تم جایگزین فایل functions.php تم اصلی می‌شود؟

خیر، برخلاف فایل‌های HTML/PHP مانند header.php، فایل functions.php چایلد تم جایگزین نمی‌شود، بلکه دقیقاً پیش از فایل functions.php پوسته والد اجرا می‌شود و توابع هر دو فایل هم‌زمان فعال هستند.

آیا برای ساخت چایلد تم حتماً باید از افزونه استفاده کرد؟

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

راهنمای عیب‌یابی سریع مشکلات رایج

مشکل ۱: صفحه سفید مرگ (White Screen of Death) یا خطای Fatal Error

علت: وجود خطای سنتکس (Syntax Error) یا تعریف مجدد یک تابع که قبلاً در پوسته والد وجود داشته است.

راه‌حل: وارد هاست شوید، نام پوشه چایلد تم را تغییر دهید تا غیرفعال شود. سپس فایل functions.php را باز کرده و توابعی که تعریف کرده‌اید را بررسی کنید تا مطمئن شوید نام آن‌ها منحصر‌به‌فرد است یا دور آن‌ها شرط if ( ! function_exists( 'my_function' ) ) قرار دارد.

مشکل ۲: اعمال نشدن کدهای CSS جدید

علت: کش شدن فایل‌ها در مرورگر/افزونه کش، یا عدم رعایت اولویت در انتخابگرهای CSS.

راه‌حل: کلیدهای Ctrl + F5 را برای خالی کردن کش مرورگر بزنید. کش افزونه‌های راکتی یا لایت‌اسپید را پاک کنید. مطمئن شوید که استایل‌های چایلد تم بعد از استایل اصلی در هدر بارگذاری می‌شوند.

مشکل ۳: پیغام Broken Theme (پوسته خراب است)

علت: اشتباه در تایپ عبارت مقابل Template: در فایل style.css یا عدم وجود فایل style.css.

راه‌حل: فایل style.css چایلد تم را باز کنید و مطمئن شوید که جلوی Template: دقیقاً اسم پوشه تم اصلی (پوسته والد) نوشته شده باشد.

سوالات متداول

چایلد تم چیست و چرا باید از آن استفاده کنیم؟

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

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

برای ساخت یک چایلد تم استاندارد، تنها به یک پوشه جدید، فایل style.css برای معرفی مشخصات تم و فایل functions.php برای فراخوانی صحیح استایل‌ها نیاز دارید.

چرا نباید از دستور import@ برای فراخوانی استایل‌ها استفاده کرد؟

استفاده از import@ بارگذاری صفحات را تاخیر می‌اندازد و سرعت سایت را به شدت کاهش می‌دهد. روش استاندارد، استفاده از اکشن wp_enqueue_scripts در فایل functions.php است.

آیا ساخت چایلد تم باعث کاهش سرعت سایت می‌شود؟

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

Table of Contents

آخرین نوشته‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *