آموزش child theme در قالب‌های وردپرس

child theme در قالب های وردپرس

در این پست از سری مقالات تیک4 قصد داریم به child theme در قالب‌های وردپرس یا ( قالب های فرزند ) بپردازیم. که یکی از بهترین و استاندارد ترین روش های ویرایش قالب ها هستند. اگر شما هم از آن دسته افرادی هستید که سایت خود را با قالب های آماده راه اندازی کرده اید با ما همراه باشید تا بهترین روش برای ویرایش قالب شما را مورد بررسی قرار دهیم.

آموزش کامل استفاده از child theme ها یا (قالب های فرزند)

قالب های فرزند

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

قالب های والد

parent theme یا قالب والد همان قالب اصلی است که تمام کد ها و توابع سایت را در خود جای داده است، به طور خلاصه همه قالب ها بجز قالب های فرزند، قالب والد نامیده میشوند. پس به طور کلی می توان گفت که قالب فرزند تمامی ویژگی های قالب مادر را در خود دارد با این تفاوت که به ما اجازه انجام ویرایش ها در قالب را بدون خطر از بین رفتن بعد از آپدیت ها می دهد. درواقع ویرایش هایی که داخل قالب فرزند اعمال می شوند به طور کامل از قالب والد جدا هستند.

اما این ویژگی چطور کار می کند؟ همانطور که می دانید ورد پرس ساختار mvc بسیاری پیشرفته ای دارد که به واسطه آن می توان اولویت های مختلفی تعیین کرد و از آنجا که اولویت قالب فرزند اولویت بالاتری نسبت به قالب مادر دارد، ابتدا توابع و کد های قالب فرزند اجرا می شوند و سپس در ادامه قالب مادر بارگزاری می شود. به این ترتیب ما می توانیم تقریباٌ هر تغییری را بدون دست کاری و ویرایش قالب مادر بر روی سایت خود اعمال کنیم.

حال با ما همراه باشید تا مراحل ساخت و اعمال تغییرات بر روی child theme یا قالب فرزند را بررسی کنیم:

چگونه یک child theme یا قالب فرزند بسازیم؟

1.در ابتدا باید پوشه child theme را ایجاد کنید.

برای این کار ابتدا وارد مسیر روت قالب خود در آدرس wp-content/themes/yourtheme شوید.

سپس در روت قالب فایلی به نام yourtheme-child بسازید، مثلا قالب فرزند برای قالب Soorin به صورت Soorin-child  است.

2.در مرحله دوم شما باید فایل style.css خود را بسازید تا قالب شما توسط وردپرس شناخته شود. فایل Css شما باید بخش زیر را در خود داشته باشد تا تبدیل به یک قالب شود:

Theme Name: Soorin-child
Template: Soorin
Theme URI: https://tik4.com
Description: Soorin | WordPress Multipurpose Theme
Version: 1
Author: Tik4.com
Author URI: https://tik4.com
Text Domain: soorin

در این کد شما باید در قسمت theme name نام قالب فرزند خود را وارد کنید، همچنین توجه کنید که در بخش template باید حتما نام قالب مادر را بنویسید.

3. در بخش بعد شما باید استایل ها و فایل های خود را انکیو (enqueue) کنید:

بهترین راه برای این کار هم این است که استایل خود را با استفاده از دستور wp_enqueue_style() قبل از استایل های قالب مادر انکیو کنید.

اول داخل پوشه child theme خود و در کنار فایل style.css یک فایل با نام functions.php بسازید.

داخل این فایل تگ <?php را باز کنید و کد های زیر را وارد کنید:

add_action( 'wp_enqueue_scripts', 'soorin_enqueue_styles' );
function soorin_enqueue_styles() {
$parenthandle = 'parent-style'; // This is 'soorin_style' for the soorin theme.
$theme = wp_get_theme();
wp_enqueue_style( $parenthandle, get_template_directory_uri() . '/style.css',
array(), // if the parent theme code has a dependency, copy it to here
$theme-&gt;parent()-&gt;get('Version')
);
wp_enqueue_style( 'child-style', get_stylesheet_uri(),
array( $parenthandle ),
$theme-&gt;get('Version') // this only works if you have Version in the style header
);

 

دقت کنید که تگ php را نباید ببندید چراکه بستن این تگ در فایل functions.php ممکن است موجب بر خوردن با ارور header شود.

4.مرحله آخر، نصب و فعال سازی قالب فرزند:

در این مرحله اگر هنوز فایل yourtheme-child را داخل روت قالب خود قرار نداده اید، اینکار را سریع تر انجام دهید تا child theme برای شما نصب شود.

پس از نصب این قالب میتوانید وارد بخش ادمین سایت خود شده و سپس از بخش نمایش، پوسته ها را انتخاب کنید یعنی:

پنل ادمین ← نمایش ← پوسته ها

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

اگر هم نتوانستید child theme خود را پیدا کنید به احتمال زیاد اشتباهی در مراحل 1 یا 2 انجام داده اید و فایل شما برای وردپرس قابل شناسایی نیست.

حال که child theme شما کامل شده است تنها نیاز است تا template ها و فایل هایی را که میخواهید تغییر دهید از داخل قالب والد انتخاب کرده و یک کپی از آنها را در داخل پوشه child theme قرار دهید و از این پس هر تغییری را فقط بر روی این فایل ها اعمال کنید تا در سایت شما قابل مشاهده باشد و دیگر هم نیازی نیست تا نگران از بین رفتن تغییرات خود پس از آپدیت قالب باشید.

برای مثال
فرض کنید که میخواهیم هدر قالب را تغییر دهیم، ابتدا باید فایل header.php  را از داخل قالب مادر کپی کرده و آن را داخل فایل child theme قرار دهیم. حال هر تغییری که برای هدر داریم را باید داخل این فایل انجام داده و سپس آن را ذخیره کنیم تا بر روی سایت ما اعمال شود.

امیدواریم از مبحث child theme در قالب‌های وردپرس بهره کافی را برده باشید. از قسمت دیدگاه ها باما در ارتباط باشید.

child theme ها یا قالب های فرزند به ما این اجازه را می دهند تا در قالب خود اولویت های مختلفی تعیین کرده و ویرایش هایی انجام دهیم، بدون این که اختلال و مشکلی برای قالب اصلی بوجود بیاید.
parent theme یا قالب مادر همان قالب اصلی است که تمام کد ها و توابع سایت را در خود جای داده است، به طور خلاصه همه قالب ها بجز قالب های فرزند، قالب مادر نامیده میشوند.
به این مقاله چه امتیازی می‌دهید؟
امیرحسین آقامحمدی

دانشجوی مهندسی نرم افزار، طراح فرانت اند و بک اند سایت، علاقه مند به طراحی کاراکتر و گرافیک

دیدگاه خود را بیان کنید

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

سبد خرید
محصولی در سبد خرید شما وجود ندارد.
question