سلام دوستان عزیز؛
یکی از مهمترین نکات در راهاندازی هر وبسایت وردپرسی، انتخاب قالب مناسب است. همانطور که میدانید برخی قالبها نیز شامل زیرمجموعههای خاص خود هستند که با نام قالب فرزند یا Child Theme در وردپرس شناخته میشوند. سؤالهای متعددی در ارتباط با Child Theme در وردپرس مطرح میشود.
مانند: قالب فرزند دقیقا چیست؟ چرا قالبهای فرزند طراحی میشوند؟ مزایا و معایب قالبهای فرزند چیست؟ و… به همین علت در این آموزش از همیار وردپرس تصمیم گرفتیم تمامی پرسشهای فوق را بررسی خواهیم کرد.
Child Theme در وردپرس
Child Theme در وردپرس مشابه یک قالب معمولی است با این تفاوت که قابلیت و توابع خود را از یک قالب وردپرسی دیگر که اصطلاحاً قالب والد نامیده میشود به ارث میبرد. قالبهای فرزند اصولاً زمانی استفاده میشوند که بخواهیم علاوه بر سفارشیسازی و ایجاد تغییرات در قالب، در هنگام بهروزرسانی مانع از دست رفتن تغییرات شویم.
چگونگی پیدایش Child Theme در وردپرس
قبلاً راه آسان برای بهروزرسانی قالب بدون از دست رفتن بخشی از تنظیمات و سفارشیسازیها وجود نداشت! از اینرو مسئله کمی پیچیده میشد چون در صورت بهروزرسانی قالب، بخشی از تنظیمات از دست میرفت و از سوی دیگر در صورت عدم بهروزرسانی احتمال هک شدن وجود داشت.
اینجا بود که مفهومی به نام قالب والد و Child Theme در وردپرس شکل گرفت. Child Theme در وردپرس تمام قابلیتها، ویژگیها، کدها و فانکشنهای قالب والد را بدون ایجاد تغییر در قالب والد، به ارث خواهد برد. این امر کاربران را قادر میسازد تغییرات موردنظر و سفارشیسازیهای خود را اعمال کنند بدون اینکه در قالب والد یا همان قالب اصلی تغییری ایجاد شود. با این روال با بهروزرسانی قالب، تغییرات و سفارشیسازیها محفوظ خواهد ماند.
ویژگیهای قالب والد (parent Theme)
ازلحاظ تئوری هر قالب وردپرس میتواند دارای قالبهای فرزند باشد، اما باید در انتخاب قالب والد بسیار دقت کرد چون قالبی که دارای توابع محدود و ویژگیهای ضعیف باشد برای والد بودن مناسب نیست.
قالب والد که اصولاً فریمورک نیز نامیده میشود در صورتی مناسب است که ویژگیها و قابلیتهای قوی و خاص خود را داشته باشد و این امکان را در اختیار طراحان و توسعهدهندگان قرار دهد که در کسری از زمان قادر به سفارشیسازی قالب فرزند باشند.
چرا از Child Theme در وردپرس استفاده کنیم؟
طراحان و توسعهدهندگان از Child Theme در وردپرس برای سرعت بخشیدن به فرآیند توسعه استفاده میکنند. هنگام استفاده از قالب اصلی والد، میتوانید بهطور چشمگیری زمان لازم برای ایجاد یک سایت وردپرس را کاهش دهید. به دلیل ارثبری قالب فرزند از والد، عناصری از جمله چارچوبها و قابلیتها و گزینههای سفارشیسازی و.. بهطور خودکار آماده هستند، بنابراین لازم نیست که همهچیز را کد نویسی کنید.
ساخت قالب فرزند یا Child Theme بسیار ساده و مانند ساخت یک فایل style.css در یک پوشه است.
چه مواقعی از Child Theme در وردپرس استفاده کنیم؟
تصمیم به استفاده از Child Theme در وردپرس به نیازهای شما بستگی دارد. مثلاً زمان طراحی سایتهای بسیار پیچیده یا سایتهای بسیار ساده از این نوع قالب کمک میگیریم.
یک شخص بهعنوان توسعهدهنده وردپرس، در گردش کاری خود هنگام ایجاد سایت با قالبهای کیفیت بالا، از قالبهای فرزند نیز کمک میگیرد تا به روند کاری طراحی سرعت ببخشد.
برای کاربر نیز استفاده از قالب فرزند کاملاً به نحوه عملکرد او بستگی دارد. زمانی که فقط مایل به تغییر چند عنصر ساده هستید یا از افزونههای خاصی برای سفارشیسازی وبسایت استفاده میکنید قالب فرزند توصیه نمیشود اما اگر طرح، رنگ، ویژگیها و… را تغییر میدهید و css ها را کاملاً سفارشی میکنید، یا مرتباً توابع جدیدی را به فایل functions.php اضافه میکنید، استفاده از Child Theme در وردپرس بهشدت توصیه میشود.
انتخاب قالب والد مناسب
همه فریمورکها قالب والد هستند اما همه قالبهای والد فریم ورک نیستند! بنابراین باید قالبی را بهعنوان والد انتخاب کنید که دارای ویژگیهای خاص و قابلیتهای زیادی باشد.
بهعنوانمثال در حال ساخت یک Child Theme در وردپرس هستید (قالب فرزند شامل فایل style.css و فایل functions.php است.) ولی فوتر قالب والد را نمیپسندید بنابراین footer.php را به قالب فرزند اضافه میکنید. همینطور برای هدر و… نیز این کار را انجام میدهید. این روش کاملاً غلط است و باید در انتخاب قالب والد تجدیدنظر کنید چون اصل مفهوم قالب فرزند ارثبری از والد است نه ساخت یک قالب کامل!
مزایای استفاده از Child Theme در وردپرس
قالب فرزند مانند سایر موارد دارای مزایا و معایب خاص است که در ادامه بهطور کامل بررسی خواهیم کرد.
1. بهروزرسانیهای امن
Child Theme در وردپرس بهطور خودکار ویژگیها، سبکها و مشخصات والدین را به ارث میبرد. این خاصیت ارثبری باعث میشود تا از قالب فرزند استفاده کنید و تمام تغییراتی که ایجاد میکنید بر روی قالب فرزند اعمال شود و قالب اصلی یا والد هیچ تغییری نکند و خراب نشود و مهمتر آنکه زمانی که قالب والد را بهروزرسانی کردید نگران از دست رفتن تغییراتی که روی قالب ایجاد کردهاید نخواهید شد. چون تغییرات و سفارشیسازیها در قالب فرزند اعمال میشوند!
2. توسعهپذیری
قالب فرزند براساس یک چارچوب قدرتمند ساختهشده و دارای انعطافپذیری بسیار بالایی است. بنابراین بدون کدنویسی میتوان قابلیتهای موردنظر را دریافت کرد و سپس آنها را توسعه داد.
3. امکان بازبینی
هنگامیکه در حال ساخت یک قالب هستید باید در مورد ویژگیها، سناریوها و کدها اول فکر کنید سپس طراحی کنید. اما در مورد قالب فرزند اینچنین نیست و در صورت فراموشی کدها و سایر موارد بهسادگی میتوانید به توابع والد رجوع کنید و موارد موردنظر را بازبینی کنید.
معایب استفاده از قالب فرزند در وردپرس
یکی از بزرگترین معایب استفاده از قالبهای فرزند در وردپرس، زمان لازم برای یادگیری موضوع ارثبری و والد است. منحنی یادگیری بهخصوص هنگامیکه با چارچوبهای قوی کار میکنید روند کندی دارد. زیرا هر یک از آنها دارای ویژگیها و قابلیتهای خود هستند. اما روند پیشرفت پس از کار با چندین قالب وردپرس روبه بهبود خواهد رفت و در کسری از زمان قادر به طراحی خواهید بود.
یکی دیگر از معایبی که ممکن است توسعهدهنده را مأیوس کند، تغییرات حاصل از سوی مؤلف در قالب والد است. بهعنوان مثال قالب والد دارای ویژگی خاصی است که در قالب فرزند نیز از آن استفاده میکنید اما پس از بهروزرسانی این ویژگی از قالب والد حذف میشود. در این صورت توسعهدهنده یا باید از آن ویژگی صرفنظر کند یا کد مربوطه را در قالب فرزند درج کند و یا اینکه افزونه و ابزارکی را جایگزین کند تا آن عملکرد را برایشان انجام دهد.
نتیجه نهایی
برای قالبهای وردپرسی میتوان قالب فرزندی تهیه کرد تا مشخصات قالب والد را به ارث ببرد و تغییرات موردنظر بر روی آن اعمال شود و در صورت بروزسانی قالب اصلی یا همان والد، خللی رخ ندهد. درصورتیکه تغییرات موردنظر جزئی باشد استفاده از Child Theme در وردپرس توصیه نمیشود. اما اگر تغییرات در حد معقول بود، میتوان از قالب فرزند کمک گرفت تا ضمن بهروزرسانی قالب والد، تغییرات شما هم حفظ شوند. در غیر این صورت اگر تغییرات بیشازحد افراطی باشد، به فکر طراحی یک قالب سفارشی باشید.
پایدار باشید.
سعید
سلام
آیا امکان شخصی سازه افزونه ها هم با این روش امکان داره یا فقط قالب ها این امکانو دارن؟
samiroza 9 سال عضو همیار وردپرس
سلام
به نظرم توضیحات و کدها ناقصه!! خود سایت wordpress.org ی چیزای دیگه گفته :/
AliPersPective42 9 سال عضو همیار وردپرس
با بهترین حالتش چ کار هایی میشه انجام داد ؟
محمد
ممنون از مطلب خوبتون
فقط فکر کنم کدکس دیگه از دستور @ import استفاده نمیکنه، دوستان میتونن یه نگاهی به اینجا بندازن:
http://codex.wordpress.org/Child_Themes
کوروش
با سلام خدمت شمااگر اگر در پوشه قالب والد پوشه ای باشه و درون اون فایلی که ما یخواهیم ویرایش کنیم، در پوشه فرزند آیا باید زیر پوشه مرد نظر رو ایجاد کنیم؟ یا فقط فایل رو در پوشه اصلی فرزند کپی کنیم کافی هست؟با احترام
Bahar 11 سال عضو همیار وردپرس
سلام
باید زیر پوشه ی مورد نظر ایجاد بشه
فرامرز
سلام…
مطلب مفیدی بود.
ولی یه سوال دارم.
اگر ما مجبور شدیم توی یکی از فایل های php که مربوط به توابع صفحه ساز هستند رو تغییر بدیم میشه کاری کرد که این تغییرات توی child قرار بگیره ئ با دستوراتی به فایلش اضافه بشه؟
Bahar 11 سال عضو همیار وردپرس
سلام
اگه فایل های اجرایی داشته باشه حتما میشه این کار رو کرد
با احترام
مهدی
عالی بود و مفید یه قالب داشتم یه پوشه با این نام داشت خوشحالم به پاسخم در همیار رسیدم
soran
مطلب خوبي بود
فقط كاش يك نمونه تم زير مجموعه هم براي دانلود ميزاشتين
مرسي از مطلبتون
علی حاجی محمدی 14 سال عضو همیار وردپرس
میذاریم به زودی دوست من
علی
با سلام
ظاهرا هنوز نمونه تم زیر مجموعه را نگذاشتید. بازم متشکرم از مطالبتون
مسعود
مرسی خوب بود .
نام (لازم)علی حاجیلویی
بسیار بسیار مفید بود..
سپاس از مطلب خوبتون