قالب فرزند

اطلاعات موضوع

درباره موضوع در تاریخ, در دسته تغییرات الگو [2.x] ایجاد شده و آغاز کننده آن Aliمی باشد و موضوع آن: قالب فرزند است. این موضوع تا کنون 2 بازدید کننده و, 0 پاسخ داشته و 0 بار پسندیده شده...
نام دسته تغییرات الگو [2.x]
نام موضوع قالب فرزند
آغاز کننده موضوع Ali
تاریخ شروع
پاسخ‌ها
0
بازدیدها
2
پسندها
0
آخرین ارسال توسط Ali

Ali

مسئول نظارت بر محتوا
پرسنل مدیریت
ناظم انجمن
Jun 7, 2020
969
1,269
یکی از چالش‌های اصلی در سفارشی‌سازی ظاهر وب‌سایت‌ها، به‌ویژه در سیستم‌های مدیریت محتوا یا انجمن‌های نسخه 2.x، اعمال تغییرات در الگوها (قالب‌ها) بدون از دست دادن آن‌ها پس از به‌روزرسانی‌های سیستمی است. راه‌حل استاندارد و توصیه شده برای این مشکل، استفاده از "قالب فرزند" (Child Theme) است.

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

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

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

نحوه ایجاد یک قالب فرزند (مراحل کلی):

اگرچه جزئیات دقیق ممکن است بسته به پلتفرم (مثلاً وردپرس، XenForo، vBulletin و غیره) کمی متفاوت باشد، اما اصول کلی یکسان است:

1. ایجاد پوشه قالب فرزند:
در مسیر themes یا styles سیستم خود، یک پوشه جدید با نامی مرتبط (مثلاً my_child_theme یا parent_theme_child) ایجاد کنید. این پوشه باید در کنار پوشه قالب والد قرار گیرد.

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

کد:
محتوای بلوک کدها در دسترس شما نیست. برای مشاهده بلوک کدها، وارد انجمن شوید یاثبت نام کنید
نکات مهم:
* Theme Name: نامی که در پنل مدیریت نمایش داده می‌شود.
* Template: این خط حیاتی است. باید دقیقاً نام پوشه قالب والد باشد (نه نام نمایش داده شده). اگر این نام اشتباه باشد، قالب فرزند کار نخواهد کرد.
* سایر اطلاعات برای شناسایی و مستندسازی قالب شما هستند.

3. فراخوانی استایل‌های قالب والد:
برای اینکه قالب فرزند استایل‌های قالب والد را به ارث ببرد، باید آن‌ها را فراخوانی کنید. این کار معمولاً به دو روش انجام می‌شود:

* روش @import (قدیمی‌تر و کمتر توصیه شده):
در انتهای فایل style.css قالب فرزند، خط زیر را اضافه کنید:
کد:
محتوای بلوک کدها در دسترس شما نیست. برای مشاهده بلوک کدها، وارد انجمن شوید یاثبت نام کنید
این روش ممکن است باعث تأخیر در بارگذاری شود.

* روش functions.php (توصیه شده برای وردپرس و مشابه آن):
اگر سیستم شما از فایل functions.php یا مشابه آن برای مدیریت اسکریپت‌ها پشتیبانی می‌کند، یک فایل functions.php در پوشه قالب فرزند ایجاد کرده و کد زیر را برای فراخوانی استایل‌های والد اضافه کنید:
کد:
محتوای بلوک کدها در دسترس شما نیست. برای مشاهده بلوک کدها، وارد انجمن شوید یاثبت نام کنید
این روش تضمین می‌کند که استایل‌های والد قبل از استایل‌های فرزند بارگذاری می‌شوند.

4. فعال‌سازی قالب فرزند:
پس از ایجاد فایل‌ها، به پنل مدیریت سیستم خود بروید (مثلاً بخش Appearance > Themes در وردپرس یا Styles در XenForo) و قالب فرزند خود را فعال کنید.

اعمال تغییرات در قالب فرزند:

حالا که قالب فرزند فعال است، می‌توانید تغییرات خود را اعمال کنید:

  • تغییرات CSS: هر CSS سفارشی که در فایل style.css قالب فرزند خود اضافه کنید، استایل‌های مشابه در قالب والد را بازنویسی (override) خواهد کرد.
کد:
محتوای بلوک کدها در دسترس شما نیست. برای مشاهده بلوک کدها، وارد انجمن شوید یاثبت نام کنید

  • بازنویسی فایل‌های الگو (Template Files):
اگر می‌خواهید ساختار HTML یک بخش خاص را تغییر دهید (مثلاً فایل header.php یا page.html را)، کافیست فایل مورد نظر را از پوشه قالب والد کپی کرده و در همان مسیر نسبی در پوشه قالب فرزند قرار دهید. سپس تغییرات خود را در فایل کپی شده اعمال کنید. سیستم به طور خودکار نسخه موجود در قالب فرزند را به جای نسخه والد بارگذاری می‌کند.

مثال: فرض کنید می‌خواهید فایل template/forum_list.html را در یک سیستم انجمن تغییر دهید.
1. فایل template/forum_list.html را از پوشه قالب والد کپی کنید.
2. در پوشه قالب فرزند خود، یک پوشه به نام template ایجاد کنید.
3. فایل forum_list.html کپی شده را در my_child_theme/template/ قرار دهید.
4. حالا می‌توانید my_child_theme/template/forum_list.html را ویرایش کنید.

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

عقب
بالا