با آموزش «چرا و چگونه یک Child Theme برای وردپرس بسازیم» در خدمت شما هستیم. پیش نیاز این آموزش، آشنایی مقدماتی با زبان های برنامه نویسی php و css و html و تجربه ی کار با وردپرس و هاست می باشد.
ساخت یک «زیرپوسته» یا Child Theme بهترین راه برای اعمال تغییرات بر یک پوسته یا قالب وردپرسی است. مهم ترین دلیل برای استفاده از زیرپوسته این است که با داشتن یک زیرپوسته برای پوسته ی وردپرسی خود، زمانی که پوسته ی اصلی را بروزرسانی می کنید، تغییرات و سفارشی سازی هایتان از بین نخواهد رفت. یعنی اگر تغییری در کدهای فایل های functions.php و style.css متعلق به پوسته ی خود را ایجاد کرده باشید، با بروزرسانی قالب، همه ی تغییرات حذف شده و این دو فایل به حالت اول باز می گردند.
از طرفی بروزرسانی پوسته ها بسیار مهم هستند چراکه بسیاری از مشکلات سازگاری با مرورگرها را حل می کند و ویژگی های جدیدی به سایت ما می افزاید.
علاوه بر این، استفاده از زیرپوسته ها هم ویژگی های خوبی را برای ما فراهم می آورند. مثلا در یک زیرپوسته، کل تمرکز طراح بر روی فانکشن ها و کدهای موجود در زیرپوسته متمرکز می شود و حجم کمتر کدها و فایل ها، کار را ساده تر می کند. اگر پس از گذشت یک مدت طولانی به فایل های سایت خود برگردید و بخواهید کدهای اصلی را از کدهایی که خودتان اضافه کرده اید تشخیص دهید، با داشتن یک زیرپوسته به راحتی این کدها قابل شناسایی خواهند بود.
خب! بسیار ساده است. فقط کافیست یک فولدر جدید بسازید و درون آن یک فایل جدید ایجاد کنید. ما در این مثال یک زیرپوسته را برای پوسته ای با نام Customizr theme خواهیم ساخت. مراحل زیر را انجام دهید:
/* Theme Name: Customizr Child Theme URI: http://mysite.com/ Description: My description Author: Me Author URI: http://mysite.com/ Template: customizr Version: 1.0.0 */
محبوب ترین روش برای ساخت یک زیرپوسته استفاده از یک پلاگین یا افزونه برای ساخت آن است. می توانید تنها با یک کلیک زیرپوسته ی خود را بسازید. در این روش نیازی با کدنویسی و ایجاد فایل نیست. مراحل زیر را انجام دهید:
این روش را برای مبتدیان پیشنهاد می کنیم، زیرا بسیار ساده است و احتمال بروز خطا در این روش کمتر است.
نکته: افزونه ی Childify Me برای شما دو فایل با نام های style.css و function.php ایجاد می کند. حال اگر خواستید فانکشن یا استایل جدیدی را به این زیرپوسته اضافه کنید، می توانید مثل مثل روش قبل به هاست خود مراجعه کنید و فایل را باز کنید و ویرایش نمایید.
به عنوان مثال برای پوسته ی Customizr theme یک زیرپوسته ساخته شده است که می توانید به رایگان از سایت آن ها دانلود نمایید.
این زیرپوسته شامل دو فایل می شود:
منطق و فلسفه ی بازنویسی با زیرپوسته:
وقتی یک زیرپوسته ساخته شده و فعال می شود، وردپرس همه ی فایل ها، استایل ها و فانکشن ها را می خواند. اگر یک فانکشن یا استایل در زیرپوسته، با یک فانکشن یا استایل دیگر در پوسته مطابقت اسمی داشت، فانکشن یا استایلی اجرا می شود که در زیرپوسته قرار داشته باشد. به عبارت دیگر موارد ذکر شده در زیرپوسته از اولویت بالاتری برای اجرا برخوردار هستند.
پس یک نکته ی مهم اینجا وجود دارد: فایل هایی مثل functions.php و index.php که در زیرپوسته قرار دارند، فایل های مشابه خود در پوسته ی اصلی را اصطلاحا اوررایت یا بازنویسی (overwrite) می کنند.
پس فایل functions.php مربوط به زیرپوسته زودتر از فایل functions.php پوسته ی اصلی اجرا می شود. این موضوع می تواند برای جایگذاری فانکشن های جدید به جای فانکشن های اصلی بسیار کاربردی باشد.
برای استفاده از این قابلیت باید فانکشن های خود را در مسیر درستی بنویسید. این همان چیزی است که به آن «فانکشن های قابل برنامه ریزی» می گوییم.
در یک زیرپوسته ی وردپرسی، باید تمامی فانکشن ها درون فایل functions.php ذخیره شده باشند و مثل زیر کدنویسی شوند:
if( ! function_exists('name_of_function') ) { function name_of_function( $params ) { // do some stuff with the $params } }
این نوع کدنویسی به برنامه نویسی اجازه می دهد تا هر نوع فانکشنی را بازنویسی و اصلاح کند. در کد بالا اگر فانکشنی که می خواستیم اصلاح کنیم وجود نداشته باشد، کل کد بالا نادیده گرفته می شود. (بخاطر وجود شرط function_exists در کد)
در اکثر پوسته های وردپرسی فایل ها در دایرکتوری اصلی به صورت زیر تقسیم بندی می شوند:
فرض می کنیم درون دایرکتوری inc از پوسته ی وردپرسی اصلی شما یک فایل با نام class-content-slider.php وجود دارد و شما می خواهید که محتوای درون این فایل را بازنویسی (overwrite) کنید.
ابتدا در زیرپوسته ی خود دایرکتوری ای با نام inc ایجاد کنید و فایل class-content-slider.php را آن کپی کنید. هر فایلی که می خواهید در زیرپوسته بازنویسی کنید، باید دقیقا همان آدرس و دایرکتوری مشابه (در پوسته اصلی) را داشته باشد.
پحال هر کدی را که می خواهید تغییر پیدا کند، در این فایل ویرایش کنید. این فایل (class-content-slider.php موجود در زیرپوسته)، فایل مشابه خود را که در پوسته ی اصلی وجود دارد (فایل پدر) بازنویسی خواهد کرد.
خواندن و ویرایش کدهای وردپرس فراتر از سطح این آموزش است. برای این که بتوانید کدها را در فایل های وردپرس بخوانید و تغییر دهید، به دیگر آموزش های من مراجعه کنید. سوالات و نظرات خود را در زیر همین مطلب به اشتراک بگذارید. به پایان این آموزش رسیدیم. امیدوارم که این آموزش برای شما مفید واقع شده باشد. موفق و سربلند باشید.
منبع: سایت Press Customizr Documenta
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.