Child Theme چیست و چگونه آنرا ایجاد کنیم؟

چرا باید از child theme استفاده کنیم ؟ تصور کنید نیاز به تغییر و کد نویسی در یک فایل قالب یا یکی از افزونه های خودتون دارید، مثلا نیاز به تغییر در مدل نمایش بخش ویژگیهای محصول افزونه ووکامرس دارید برای اینکار کافیه از پوشه “woocommerce/templates/single-product” قالب فایل “product-attributes.php” رو ویرایش کنید. اما چه اتفاقی میوفته اگه افزونه ووکامرس به نسخه جدید آپدیت بشه؟ خیلی ساده تمام تغییراتتون حذف میشه البته میتونین قبل از آپدیت و بروز رسانی فایل هایی که ویرایش کردین رو جای دیگه ای نگهدارین و دوباره برگردونین به مسیر قبلی در قالب یا افزونه آپدیت شده، اما این کار خیلی سیستمی و عملی نیست، اینجا بود که وردپرس لازم دید تا راه حل عملی و سیستمی تری رو ارائه بده که حاصل اون شد تم فرزند یا همون Child Theme .

Child Theme چیست؟

اگر بخواهم فنی تر توضیح بدم Child Theme یا همون قالب فرزند یک پوشه ی همنام با قالب اصلی شماست که فقط پسوند  Child بهش اضافه شده و شامل دوتا فایل اصلی به نام های “functions.php” و “style.css” و یک فایل تصویر بنام “screenshot.png” هست، داخل فایل “functions.php” تکه کدی هست که وظیفه ی اون فراخوانی فایل “style.css” از مسیر تم چایلد هست و “style.css” هم شامل کد های معرفی قالب چایلد میشه که در ادامه نحوه ایجاد تم چایلد رو براتون شرح میدم تا بیشتر با این مفاهیم آشنا بشین.

Child Theme یا پوسته فرزند چه کاربردی دارد؟

شمارو ارجاع میدم به شروع این مقاله و مثالی که اونجا زدم، حالا برای اینکه با استفاده از تم چایلد بتونین تغییرات خودتون رو ذخیره کنید جوری که با بروز رسانی قالب یا افزونه از بین نره کافیه تا فایلی که قصد ویرایش اونرو دارین با “همون ساختار پوشه بندی” در تم چایلد کپی کنید، به این نکته توجه کنید اگر میخاین فایلی مثل مثالی که براتون زدم رو در تم چایلد کپی و ویرایش کنید نیاز دارین در تم چایلد مسیر “woocommerce/templates/single-product” رو ایجاد کنید و فایل “product-attributes.php” رو داخل اون کپی کنید و بعد تغییرات خودتون رو اعمال کنید.

این سازو کار برای ویرایش فایل های وابسته به افزونه ها ممکنه متفاوت باشه به عنوان مثال اگر نیاز به ویرایش فایل های مربوط به افزونه دکان رو دارین کافیه یک پوشه به نام dokan ایجاد کنید و فایل مورد نظرتون رو داخل اون کپی و ویرایش کنید.

Child Theme فقط برای ویرایش فایل های قالب نیست بلکه میتونید ازش برای ذخیره کردن تغییرات در افزونه ها هم استفاده کنید.

چند مثال از کاربرد تم چایلد

فرض کنید میخواهید تغییراتی در css اعمال کنید به صورتی که در همه جای سایت اعمال بشه ممکنه قالبی که ازش استفاده میکنید برای اینکار بخش مجزایی داشته باشه ولی نیاز به اون نخواهید داشت اگر کد های css خودتون رو در فایل “style.css” قرار بدین، تصور کنید میخواهید یک کد php به قالب اضافه کنید مثلا کدی که بوسیله اون میتونید به جای عدد 0 در صفحه محصول عبارت ” ناموجود ” رو نمایش بده کافیه کد مورد نظرتون رو داخل فایل “functions.php” قرار بدین.

چگونه برای قالب خود پوسته فرزند ایجاد کنیم؟

ایجاد تم چایلد بوسیله کد نویسی

برای اینکار باید در مسیر “/wp-content/themes/” یک پوشه ایجاد کنید لزومی نداره اسم این پوشه حتما با قالبتون یکی باشه ولی ترجیحا از استاندارد ” نام قالب- Child ” استفاده کنید، بعد از ایجاد فولدر مورد نظر نیازه داخل اون دوتا فایل اصلی که قبلتر گفتم ایجاد کنید فایل های “style.css” و “functions.php”.

محتویات فایل “style.css” به شرح زیر هست :

/*
Theme Name: wordpressgeek-child
Theme URI: https://wordpressgeek.net
Description: A Twenty Twenty-One child theme 
Author: WPBeginner
Author URI: https://wordpressgeek.net
Template: twentytwentyone
Version: 1.0.0
Text Domain: twentytwentyonechild
*/

مقادیر رو میتونین طبق نیاز خودتون تغییر بدین.

فایل “functions.php” هم وظیفه داره تا فایل استایل رو فراخوانی کنه که برای اینکار کافیه کد زیر رو داخل فایل “functions.php” اضافه کنید:

<?php
/**
* Enqueue script and styles for child theme
*/
function wordpressgeek_child_enqueue_styles() {
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( 'wordpressgeek-style' ), '1.0' );
}
add_action( 'wp_enqueue_scripts', 'wordpressgeek_child_enqueue_styles', 10010 );

توجه داشته باشین این کد برای قالب WordPressgeek تنظیم شده و نیازه با اسم قالب خودتون جایگزین بشه.

بعد از ذخیره تغییرات از مسیر ” نمایش/ پوسته ها ” قالب چایلدتون رو فعال کنید، چون هنوز هیچ تغییری در فایل ها اعمال نکردیم هیچ تفاوتی هم در ظاهر سایت نخواهید داشت و سایت عینا مثل قبل نمایش داده میشه.

از این به بعد هر تغییر و ویرایشی که نیاز دارین در قالب یا افزونه ای اعمال کنید توی این بخش اضافه میکنید تا با بروز رسانی ها ازبین نروند.

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

برای ایجاد تم چایلد یا همون پوسته فرزند با استفاده از افزونه کافیه افزونه ی Child Theme Generator رو نصب کنید و بعد از مسیر ” تنظیمات/Child-Themes Gen ” وارد تنظیمات افزونه بشین، در مرحله اول از بخش Parent theme قالبی که میخاین براش پوسته فرزند بسازین رو انتخاب کنید باقی فیلد ها اختیاری هستند و نیازی به وارد کردن مقادیر داخل اونها نیست میتونین دکمه ی “Create new child theme” رو بزنید تا به مرحله بعد برین.

child theme generator
آموزش ایجام تم چایلد برای تم اصلی در وردپرس

در مرحله دوم تم چایلد ایجاد شده و میتونین با انتخاب گزینه Activate child-theme? پوسته فرزند خودتون رو فعال کنید

با کلیک روی دکمه Finish کار ایجاد تم چایلد برای پوسته ی مورد نظر به اتمام رسیده و میتونین تغییرات مورد نظرتون رو در قالب چایلد اعمال کنید بدون اینکه با بروز رسانی قالب یا افزونه ها این تغییرات حذف بشن.

 

 

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

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