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

مفهوم Child Theme در وردپرس چیست؟

Child Theme یا پوشه فرزند، یک قالب وردپرس است که تمامی قابلیت‌ها و سبک‌های بصری خود را از یک قالب دیگر به نام “پوشه والد” یا “Parent Theme” به ارث می‌برد. به عبارت ساده‌تر، Child Theme یک لایه رویی بر روی Parent Theme است. هرگونه تغییر در ظاهر یا عملکرد سایت، به جای اینکه مستقیماً در فایل‌های قالب والد اعمال شود، در فایل‌های Child Theme ذخیره می‌شود.

چرا به Child Theme نیاز داریم؟

هدف اصلی از استفاده از Child Theme، حفظ و پایداری تغییرات شما در برابر به‌روزرسانی‌های قالب والد است. فرض کنید شما یک قالب وردپرس (مثلاً قالب محبوب Twenty Twenty-Four) را نصب کرده‌اید و می‌خواهید رنگ دکمه‌ها را تغییر دهید یا یک عملکرد جدید به آن اضافه کنید. اگر این تغییرات را مستقیماً در فایل‌های قالب Twenty Twenty-Four اعمال کنید، هر بار که توسعه‌دهندگان وردپرس نسخه جدیدی از این قالب را منتشر کنند و شما آن را به‌روزرسانی کنید، تمامی تغییرات شما نادیده گرفته شده و با فایل‌های جدید جایگزین خواهند شد.

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

چایلد تم در وردپرس

مزایای استفاده از Child Theme در وردپرس

  1. به‌روزرسانی‌های ایمن: مهمترین مزیت، امکان به‌روزرسانی ایمن قالب والد بدون از دست دادن سفارشی‌سازی‌ها است. این کار امنیت و پایداری سایت شما را تضمین می‌کند، زیرا به‌روزرسانی‌ها اغلب شامل رفع اشکالات امنیتی و بهبود عملکرد هستند.
  2. جلوگیری از شکستن سایت: با اعمال تغییرات در Child Theme، خطر خراب شدن سایت در صورت اشتباه در کدنویسی به حداقل می‌رسد. اگر خطایی در Child Theme رخ دهد، می‌توانید به راحتی آن را غیرفعال کرده و به Parent Theme برگردید تا مشکل را رفع کنید.
  3. توسعه و اشکال‌زدایی آسان‌تر: جدا بودن کد سفارشی از کد اصلی قالب، فرآیند توسعه و اشکال‌زدایی را ساده‌تر می‌کند. شما دقیقاً می‌دانید که تغییرات شما در کدام فایل‌ها قرار دارند.
  4. کاهش زمان توسعه: به جای شروع از صفر، می‌توانید از امکانات و طراحی پایه قالب والد بهره‌برداری کنید و تنها بخش‌هایی را که نیاز به تغییر دارند، سفارشی‌سازی کنید.
  5. امکان بازگشت به حالت اولیه: در هر زمان می‌توانید Child Theme را غیرفعال کرده و به حالت اولیه قالب والد بازگردید، که برای آزمایش و عیب‌یابی بسیار مفید است.

نحوه ایجاد یک Child Theme در وردپرس

ایجاد یک Child Theme در وردپرس بسیار ساده است و تنها به چند مرحله نیاز دارد:

  1. ایجاد یک پوشه جدید: در مسیر wp-content/themes در نصب وردپرس خود، یک پوشه جدید برای Child Theme خود ایجاد کنید. نام این پوشه می‌تواند هر چیزی باشد، اما معمولاً توصیه می‌شود نام قالب والد را با پسوند -child اضافه کنید (مثلاً twentytwentyfour-child).

  2. ایجاد فایل style.css: درون پوشه Child Theme که در مرحله قبل ایجاد کردید، یک فایل به نام style.css بسازید. این فایل مهمترین بخش Child Theme است و حاوی اطلاعات ضروری در مورد قالب فرزند و همچنین استایل‌های سفارشی شما خواهد بود. محتوای این فایل باید شامل یک هدر خاص باشد که وردپرس از آن برای شناسایی Child Theme استفاده می‌کند:

    CSS

    /*
     Theme Name: My Twenty Twenty-Four Child Theme
     Theme URI: http://example.com/
     Description: My custom child theme for Twenty Twenty-Four.
     Author: Your Name
     Author URI: http://yourwebsite.com
     Template: twentytwentyfour
     Version: 1.0.0
     License: GNU General Public License v2 or later
     License URI: http://www.gnu.org/licenses/gpl-2.0.html
     Tags: light, dark, two-columns, flexible-header, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, featured-images, full-width-template, post-formats, rtl-language-support, sticky-post, translation-ready
     Text Domain: my-twentytwentyfour-child
    */
    

    نکات مهم در این هدر:

    • Theme Name: نامی که برای Child Theme شما نمایش داده می‌شود.
    • Template: این خط بسیار مهم است. این نام پوشه قالب والد شما است (نه نام قالب). برای مثال، اگر قالب والد شما “Twenty Twenty-Four” باشد، نام پوشه آن در wp-content/themes معمولاً twentytwentyfour است. این نام باید دقیقاً با نام پوشه قالب والد مطابقت داشته باشد.
  3. ایجاد فایل functions.php: برای اطمینان از اینکه استایل‌های قالب والد به درستی بارگذاری می‌شوند، باید یک فایل functions.php در پوشه Child Theme خود ایجاد کنید. این فایل مسئول “صف‌بندی” (enqueuing) استایل‌های قالب والد است. کد زیر را به آن اضافه کنید:

    PHP

    <?php
    add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );
    function my_child_theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
        // optionally, you can add your child theme's style.css after the parent's
        // wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') );
    }
    ?>
    

    این کد اطمینان می‌دهد که style.css قالب والد قبل از style.css قالب فرزند بارگذاری می‌شود، بنابراین استایل‌های شما می‌توانند استایل‌های والد را لغو کنند. (خط دوم wp_enqueue_style برای زمانی است که می‌خواهید استایل‌های خود Child Theme را نیز به صورت جداگانه لود کنید، در غیر این صورت استایل‌ها را مستقیماً در style.css وارد می‌کنید.)

  4. فعال‌سازی Child Theme: پس از ایجاد این فایل‌ها، به داشبورد وردپرس خود بروید (بخش نمایش -> پوشه‌ها). شما باید Child Theme جدید خود را در لیست قالب‌ها مشاهده کنید. آن را فعال کنید.

نحوه ایجاد یک Child Theme در وردپرس

سفارشی‌سازی Child Theme

حالا که Child Theme شما فعال است، می‌توانید شروع به سفارشی‌سازی کنید:

  • تغییرات CSS: تمامی تغییرات استایلی خود را به فایل style.css در پوشه Child Theme اضافه کنید. این استایل‌ها، استایل‌های مشابه در قالب والد را لغو می‌کنند.
  • سفارشی‌سازی فایل‌های قالب: اگر نیاز به تغییر ساختار HTML یک فایل خاص در قالب والد دارید (مانند header.php, footer.php, single.php و غیره)، کافیست آن فایل را از پوشه قالب والد کپی کرده و در پوشه Child Theme خود قرار دهید. سپس تغییرات خود را در نسخه کپی شده در Child Theme اعمال کنید. وردپرس به صورت خودکار نسخه Child Theme را به جای نسخه والد بارگذاری می‌کند.
  • افزودن توابع جدید: برای اضافه کردن عملکردهای جدید یا تغییر عملکردهای موجود، می‌توانید کدهای PHP خود را به فایل functions.php در پوشه Child Theme اضافه کنید. توابع در این فایل به صورت مستقل عمل می‌کنند یا توابع هم‌نام در قالب والد را (اگر با function_exists() یا پلاگین‌ها ایمن شده باشند) لغو می‌کنند.

نکته پایانی

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