Child Theme چیست ؟ ( تم فرزند در وردپرس )

Child Theme چیست ؟ در راه اندازی یک وب سایت یکی از مهم ترین نکات انتخاب قالب مناسب است . قالب مناسب و زیبا میتواند تاثیر بسزایی در ارتباط کاربران با سایت داشته باشد . امروزه قالب های بسیار زیبا و متنوعی برای وردپرس وجود دارد و همه روزه ، بروز رسانی جدیدی برای قالب ها ارائه میشود. در وردپرس میتوان هم از قالب های آماده استفاده کرد و هم از قالب های سفارشی که براساس نیاز مشتری طراحی و ساخته شده اند استفاده کرد.

قالب آماده یا اختصاصی ؟

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

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

حال بیایید نقاط قوت قالب های آماده یعنی امکانات جذاب و جالب با هزینه بسیار پایین را در کنار نقاط قوت قالب های اختصاصی یعنی سرعت و امکانات اختصاصی را در کنار یکدیگر قرار دهیم اما این چگونه ممکن است آیا این امکان وجود دارد بتوانیم قالب اختصاصی توسعه دهیم که زمان توسعه آن بسیار کمتر شود و هزینه نهایی برای مشتری با صرفه تر شود؟

این یک مقدمه چینی اصولی بود تا شما خیلی خوب درک کنید که تم فرزند چیست و چرا باید تم فرزند داشته باشیم ؟ پس در ادامه به مطالب ارائه شده بخوبی دقت کنید .

توسعه قالب بر پایه قالب آماده

مناسب ترین روشی که میتوانیم از آن استفاده کنیم این است که قالب آماده را تغییر دهیم و امکانات مورد نیاز مشتری را به آن اضافه کنیم . اما با این کار نیز مشکلی به وجود می آید و آن زمانی است که برای قالب پایه به روز رسانی منتشر میشود . با بروز رسانی قالب پایه همه تغییرات ما نیز کلا از بین میرود . سیستم مدیریت محتوای محبوب وردپرس برای این مشکل راه کاری هوشمندانه را ارائه داده است. و آن امکان ایجاد Child Theme است.

مقاله پیشنهادی : وردپرس چیست ؟

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

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

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

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

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

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

پوسته فرزند وردپرس

و یا گاهی ممکن است بسیاری از ویژگی های قالب اصلی وابسته به افزونه های خاصی باشد که شما کافیست به جای استفاده از قالب اصلی بعنوان قالب پایه برای Child Theme خود از افزونه های استفاده شده در آن قالب در قالب خود استفاده کنید و یک قالب اختصاصی توسعه دهید . و یا اگر تغییراتی که میخواهید اعمال کنید بسیار زیاد باشد و در کل از قالب پایه کمتر از 50 درصد استفاده خواهد شد و یا برای اعمال تغییرات نیاز است تعداد زیادی فایل تغییر داده شود در چنین مواردی ایجاد قالب فرزند درست نیست و بهتر است یک قالب جدید توسعه داده شود.

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

اگر قالب های مختلفی دارید که بعضی قسمت ها در اکثر قالب ها عین هم هستند و یا میخواهید یک قالبی را توسعه دهید که براساس موقعیت های مختلف امکانات مختلفی داشته باشد مثلا قابلیت استفاده به عنوان یک قالب فروشگاهی را داشته باشد در چنین مواردی میتوانید یک قالب پایه برای خود ایجاد کنید و قالب های جدید را برپایه این قالب توسعه دهید البته در چنین شرایطی میتوانید به جای ایجاد قالب فرزند کد های قالب پایه را در قالب جدید کپی کنید . ولی ایجاد Child Theme بسیار ساده تر است و عقلانی تر . اگر در آینده نیاز به تغییر در کد های پایه باشد دیگر نیازی ندارید در همه قالب ها کد های موجود را تغییر دهید و یا یک به یک کد های جدید را به تمامی قالب ها انتقال دهید .  فقط کافیست قالب پایه را به روز رسانی کنید و تغییرات روی همه قالب ها اعمال خواهد شد.

اگر قالبی در اختیار دارید و فکر میکنید که این قالب تقریبا همه ویژگی های مورد نیاز شما را در خود جای داده است و فقط برخی ویژگی های جدید را میخواهید به آن اضافه کنید . میتوانید برای این کار یک قالب فرزند از روی آن ایجاد کنید و به راحتی تغییرت دلخواه را روی آن اعمال کنید . برای مثال اگر قالبی دارید که از طراحی آن راضی هستید ولی این قالب قابلیت فروشگاه را ندارد میتوانید یک قالب فروشگاهی فرزند از آن ایجاد کنید و با  تغییرات کم یک قالب فروشگاهی زیبا داشته باشید.

و یا زمانی ممکن است بخواهید تنظیمات خاصی را بر روی یک قالب اضافه کنید و یا تنظمات موجود را غیر فعال کنید . در چنین مواردی بهترین راه ایجاد یک Child Theme برای سفارشی سازی قالب اصلی است بدون این که تغییراتی در کدهای قالب اصلی داشته باشید.

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

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

معایب child Theme

پوسته فرزند نیز عاری از عیب و ایراد نیست و مثل بقیه راه کار ها دارای معایبی نیز است  یکی از ایراداتی که میتوان برای پوسته فرزند در نظر گرفت عدم بروز رسانی پوسته پایه بعد از گذشت مدت زمان زیادی پس از انتشار آن است اگر قالبی را بر پایه یک قالب دیگر ایجاد کرده باشید و قالب پایه دیگر بروز رسانی نشود در کل میتوان گفت دیگر نمی توانید از ویژگی های جدید استفاده کنید و مجبور هستید دوباره یک قالب جدید توسعه دهید.

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