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

12 دیدگاه

سلام

اکثر کاربران وردپرس برای اینکه بتوانند دقیقا به قالب(theme) مورد نظر خود دست یابند،نیازمند اعمال تغییراتی در قالب فعلی خود هستند.اما مشکل اصلی هنگامی که قالب بروز (update) شود،رخ می دهد.زیرا با بروز شدن قالب فایل های هسته (core) آن بازنویسی (overwritten) شده و تغییراتی که اعمال شده بودند،دوباره از بین می روند.[اگر با بخش شبکه وردپرس نیز کارکرده باشید،بازنویسی بعضی ها فایل ها می تواند باعث بروز مشکل در سیستم شود].

اما جای نگرانی نیست چون وردپرس به این راحتی کسی را ناامید نمی کند.راه حل اساسی استفاده از زیر پوسته یا پوسته بچه یا … اصلا همان Child Theme خودمون خواهد بود.

یک زیر قالب “قالبی است که به صورت کلی از قالب دیگری بنام قالب والد یا Parent theme،منشعب شده و همه قابلیت های آن را به ارث می برد در عین حال شما را قادر می سازد بدون دست کاری قالب اصلی یا والد،امکانات مورد نیازتان را به وارث آن اضافه کنید”.در این صورت هنگام بروز شدن قالب اصلی،تغییرات شما از بین نخواهد رفت زیرا در قالب دیگری ذخیره شده اند.

حالا می خواهیم یک زیر پوسته ایجاد کنیم.تنها چیزی که لازم داریم،یک چیز است:فایل style.css.برای مثال می خواهیم برای این پوسته،یک زیر پوسته ایجاد کنیم.پس ابتدا یک پوشه با نام magazine-premium-child ایجاد و سپس داخل آن فایل css را ایجاد می کنیم.ساختاری مثل این:

قالب

 

 

حالا فایل style.css را باز کرده و خطوط زیر را به بالای آن اضافه می کنیم:

 

/*
Theme Name:	Magazine Premium - Child theme
Theme URI:	http://themes.bavotasan.com/our-themes/premium-themes/magazine-premium/
Description:	A basic child theme for Magazine Premium
Author:		c.bavota
Author URI:	http://themes.bavotasan.com/
Template:	magazine-premium
Version:	0.1
*/

خطی که بسیار مهم است خط Template: magazine-premium می باشد.زیرا به وسیله این خط است که وردپرس می تواند دریابد،این زیر قالب از کدام قالب اصلی منشعب می شود.نکته دیگر این است که در مقدار این خط،حتما باید نام پوشه قالب والد را ذکر کنید.برای مثال در این مورد،ما تعیین کرده ایم که قالب اصلی ما در دایرکتوری magazine-premium قرار دارد.پس اگر نام پوشه را عوض کردید،این خط را نیز باید تصحیح نمایید.

در همین رابطه :   دانلود 10 قالب جدید وردپرس 2012

 

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

/*
Theme Name:	Magazine Premium - Child theme
Theme URI:	http://themes.bavotasan.com/our-themes/premium-themes/magazine-premium/
Description:	A basic child theme for Magazine Premium
Author:		c.bavota
Author URI:	http://themes.bavotasan.com/
Template:	magazine-premium
Version:	0.1
*/
 
@import url("../magazine-premium/style.css");

کاری که انجام دادیم،فراخوانی فایل اصلی از قالب والد بود.حالا اگر زیر قالب را فراخوانی کنید،دقیقا عین قالب اصلی به نظر می رسد.

 

حالا برای اعمال برخی تغییرات حاضرید؟!

هر سبکی که به css ها اضافه کنید،با بروز شدن قالب پاک نخواهند شد و نیز بهبودهایی که در قالب اصلی ایجاد شوند،به صورت خودکار به قالب وارث نیز اعمال خواهند شد.حالا اگر خواستیم فایل دیگری مثل single.php را دستکاری کنیم،چکار باید کرد؟هیچ.فقط کافیست فایل مذکور را از دایرکتوری قالب اصلی به دایرکتوری قالب فرعی کپی کنید و تغییرات لازم را در آن ایجاد کرده و همانجا ذخیره کنید.

 

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

برای اطلاعات بیشتر در مورد زیر قالب ها می توانید به آدرس روبرو سری بزنید: http://codex.wordpress.org/Child_Themes

منبع

دسته بندی : قالبهک های وردپرس

12 نظر

  1. سلام
    دستتون درد نکنه ! چون دیگه داشتم کلافه میشدم یه ماه نشده قالبم آپدیت میشد! باز دوباره باید کلی قالبمو تغییر میدادم!

  2. آقا من یه زیر قالب دارم که از قالب thematic استفاده میکنه.

    میخوام فارسیش کنم.

    استایلش رو درست کردم اما فارسی کردنش چطوریه؟

    باید قالب والد رو تغییر بدم؟

    آخه این زیر قالب خودش فایلی نداره که ترجمه کنم مطالبشو.

    کمک کنید

    مرسی

      1. دعا بود عزیزم واسه شمایی که کمک میکنین و تجربیات خودتون رو که ممکنه به سختی هم به اونا دست پیدا کرده باشین در اختیار ما میذارین. زنده باشی 1000 سال :d

  3. بسیار عالی. اتفاقا من به چنین نوشته ای برای ارجاع دادن برخی از دوستانم نیاز داشتم.

    سپاسگذارم.

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

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