پوسته های وردپرس هر چند وقت امکاناتی بهش اضافه میشه ، استایل و ظاهرش تغییر می کنه و ممکنه باگ هایی داشته باشه که در هر بروزرسانی رفع میشه. از طرفی شما سایت و یا وبلاگی و یا حتی فروشگاه آنلاینی دارید که روی پوسته وردپرس کار شده و سفارشی سازی های زیادی با صرف هزینه انجام شده و نمی خواید با به روز رسانی و آپدیت قالب سایت، این تغییرات از بین بره.
برای نمونه برای قالب ییست بیست و یک پیش فرض وردپرس قالب چایلد رو ایجاد می کنیم .
برای اینکه بتونید این تغییرات و سفارشی سازی ها رو حفظ کنید و با خیال آسوده هر زمان که پوسته آپدیت شد شما هم پوسته رو آپدیت کنید، شما باید یه پوسته چایلد برای پوسته اصلی تعریف کنید و تغییرات و سفارشی سازی ها رو روی پوسته چایلد ایجاد کنید . در اینصورت پوسته چایلد در اصل تغییرات و ویرایش های مورد نیاز از پوسته اصلی هست که در اختیار شماست.
برای ایجاد چایلد تم باید این اقدامات انجام بشه :
1- یه فولدر هم نام با نام فولدر themes در کنار همون قالب والد ایجاد می کنیم و به پایان نام اون قالب child- رو اضافه می کنیم
مثلا برای قالب بیست بیست و یک نام فولدر به این صورت هست twentytwentyone-child
2- در داخل این فولدر 3 تا فایل ضروری هست که باشه یکی استایل و یک فایل فانکشن و یه فایل اسکرین شات تم چایلد . یعنی حداقل فایل های ضروری برای ایجاد و شناسایی قالب فرزند یا همون چایلد تم.
فایل استایل رو با نام style.css می سازیم و به ابتدای اون این چند خط رو اضافه می کنیم و ذخیره می کنیم
/* // نام چایلد تم Theme Name: Twenty Twenty-One Child // یا پوسته والد parent child Template: twentytwentyone // تکست دومین برای تعریف و ترجمه عبارات برای فایل زبان Text Domain: twentytwentyone_child // ورژن چایلد تم Version: 1.0.0 Theme URI: http://wordpresskar.com Description: Twenty Twenty-One Child Theme Author: karimeh Author URI: http://wordpresskar.com Tags: one-column, right-sidebar */
طبیعتا مثل تمام پوسته های وردپرسی یه فایل functions.php هم احتیاج داریم که توابع وردپرسی و کدهای وردپرسی رو در اون وارد و ذخیره کنیم .
برای اینکه فایل استایل از پوسته والد بارگزاری بشه این کد رو اضافه می کنیم :
<?php add_action( 'wp_enqueue_scripts', 'parent_theme_enqueue_styles'); function parent_theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } // برای اینکه استایل چایلد بعد از همه استایل ها بارگزاری بشه اولویت اون رو 99 گذاشتیم // در اینصورت این استایل بعد از همه استایل ها لود میشه و بعد از همه اعمال میشه add_action( 'wp_enqueue_scripts', 'child_theme_enqueue_styles',99); function child_theme_enqueue_styles() { wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css'); } ?>
و در آخر یه فایل png با تصویر دلخواه و ترجیحا مشابه با اسکرین شات خود پوسته والد تهیه می کنیم و عبارت چایلد تم رو روی اون اضافه می کنیم تا در قسمت مدیریت پوسته ها از پوسته والد قابل تفکیک باشه .
بعد از انتخاب و فعال شدن پوسته چایلد، فایل ها و توابعی که در پوسته چایلد ایجاد و تعریف شده باشند نسبت به پوسته والد اولویت دارند و در صورتی که پوسته چایلد وجود نداشته باشند ، فایل موجود در پوسته والد اجرا خواهد شد.
برای اینکه بخوایم در پوسته چایلد تغییراتی رو ایجاد کنیم ، دقیقا مسیری که فایل اصلی در پوسته والد وجود دارد باید در پوسته چایلد ایجاد بشه .
در پوسته فرزند یا چایلد تم می تونید استایل سفارشی خودتون رو اضافه کنید، فونت های جدید برای قالب تعریف کنید، قالب صفحات و برگه ها رو تغییر بدید و کدهای مورد نظر خودتون رو به فانکشن قالب اضافه کنید .
نکته مهم : اگر در قالب یا پوسته والد در قسمت سفارشی سازی > css اضافی کدهایی رو اضافی کردید باید این کدها رو در جایی ذخیره و به پوسته چایلد به همین قمست اضافه کنید.