اضافه کردن کلاس body در وردپرس

اضافه کردن کلاس body در وردپرس

در این آموزش کوتاه، ما نگاهی به کلاس body در وردپرس می اندازیم و یاد خواهیم گرفت که چگونه با استفاده از هسته API آن را دستکاری کنیم.

به طور خاص، در این آموزش، جگونگی اضافه کردن کلاس body، حذف کلاس body، شرطی اضافه کردن کلاس body، و برخی از موارد را تحت پوشش قرار می دهیم.

 

کلاس Body: برای چه استفاده می شود

کلاس body در وردپرس یک کلاس یا مجموعه ای کلاس ها است که بر روی عناصر بدنه HTML اعمال می شود. این برای اعمال کردن بر روی style های منحصر به فرد در نقاط مختلف از سایت وردپرس مفید است، که کلاس های body به صورت شرطی اضافه می شوند.

 

اضافه کردن به کلاس body

تعدادی روش برای ما در درسترس است که بتوانیم یک کلاس body جدید در وردپرس اضافه کنیم. این آمورش می خواهد کلاس body را در داخل یک تم (theme) که معمولا در header.php تعریف شده است را با استفاده از تابع body_class و یک filter تحت پوشش قرار دهد.

 

ویرایش قالب: اعمال مقدار کلاس body

این روش ساده ای برای اضافه کردن کلاس body است و به خصوص برای ساخت قالب مفید است. کلاس body معمولا با استفاده از کد زیر به قالب اضافه می شود:

برای اضافه کردن کلاس دلخواه خود، می توانید یک آرگومان به تابع پــاس دهید، مثل کد زیر:

این کار باعث می شود که کلاس my-class در همه ی صفحات وردپرس اضافه شود.

 

 اضافه کردن کلاس های body چندگانه

گاهی وقت ها می خواهید بیش از یک کلاس به body اضافه کنید. این کار با استفاده از یک آرایه ساده امکان پذیر است:

 

این کار تمام آیتم های داخل آرایه را به تابع body_class انتقال می دهد.

شرطی اضافه کردن کلاس body

شاید بخواهید کلاس های body خود را به صورت شرطی اضافه کنید، یعنی در موقعیت های خاص اضافه شوند. این کار را به سادگی با استفاده از PHP می شود انجام داد.  مثال زیر از متد شرطی ()is_shop در پلاگین WooCommerce استفاده می کند:

توجه داشته باشید که WooCommerce در حال حاضر یک کلاس را اضافه کرده است، بنابراین این تنها یک مثال است.

کاری که کد بالا انجام می دهد، این است که در ابتدا تابع اول را بررسی می کند، که اگر true باشد آنگاه کلاس body مقدارش is-woocommerce-shop می شود، در غیر این صورت، اگر false باشد کلاس پیشفرص برای body در نظر گرفته می شود.

 

اضافه کردن کلاس body با استفاده از Filter

این ممکن است که با استفاده از یک filter وردپرس هم، کلاس body اضافه کنیم. این روش کدهای قالب ما را تمیز نشان می دهد و به خصوص مفید است که یک کلاس body را از یک پلاگین اضافه کنیم. کد زیر می تواند در تم شما در فایل functions.php یا درون پلاگین نوشته شود.

این کد کلاس یا کلاس هایی را بسته به اجرای شما در آرایه قرار می دهد و در آخر برگشت (return) داده می شود.

 

اضافه کردن کلاس body چندگانه با Filter

برای اضافه کردن کلاس های بیشتر به فیلتر، تنها کافی است یک آرایه دیگر با مقدار متفاوت به کد اضافه کنید:

 

شرطی اضافه کردن کلاس body چندگانه با Filter

در فیلتر هم می توان از شرط ها استفاده کرد. با استفاده از مثال قبل، می توانیم همان اثر را داشته باشیم:

 

اضافه کردن کلاس body بر اساس Page Template

به طور پیشفرض وردپرس کلاس body را به page template اضافه می کند، اما اگر شما یک توسعه دهنده حرفه ای هستید دارای قراردادهای نامگذاری برای CSS های خود هستید آنگاه شاید بخواهید آن را تغییر دهید.

به عنوان مثال، یک page template با نام test می تواند کلاس body با مقدار page-template-page-test-php داشته باشد – جالب نیست؟

بنابراین بیایید یک کلاس حدید، با استفاده از یک filter و تگ های شرطی وردپرس اضافه کنیم:

این کار باعث می شود که کلاس body با مقدار test-page به page-test.php اضافه شود.

 

حذف کلاس body

این بعید است که بخواهید کلاس body را پاک کنید، همانطود که می دانید مجبور نیستید که از آنها استفاده کنید و خیلی کم پیش بیاید در کد زیر استفاده کنید. گفته می شود که با استفاده از فیلتر body_class می توان این کار را انجام داد.

در این مثال با استفاده از یک حلقه، اگر کلاس woocommerce-page وجود داشت، آن را از بین می برد، آنگاه کلاس ها را برگشت می دهد، منهای کلاس هایی که حذف شده اند.