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

در بیشتر موارد وقتی یک ظاهر طراحی شده در منوهای ناوبری وردپرس ، می توانید به سادگی کلاس های CSS را از پنل مدیریت وردپرس اضافه کنید. اخیراً در حالی که مشغول کار بر روی یک پروژه بودیم ، در وضعیت دشواری قرار گرفتیم. ما می خواهیم فقط در صفحات ارسال پست ، یک کلاس سفارشی به یک مورد خاص در فهرست اضافه کنیم. پس از مدتی گشتن در اطراف ، هیچ راه حلی پیدا نکردیم. آخرین چاره ما پرسیدن از توییتر بود. اوتو (@ Otto42) پاسخ داد و گفت با استفاده از فیلترها این امکان وجود دارد ، اما هیچ اسنادی برای فیلتر وجود ندارد.

پس از مدتی جستجو در هسته ، راه حل را فهمیدیم. کاری که باید انجام دهید اینست که کد زیر را در پرونده عملکردهای خود قرار دهید:

// فیلتر کردن یک کلاس در مورد منوی پیمایش
add_filter ('nav_menu_css_class'، 'special_nav_class'، 10، 2)؛
عملکرد special_nav_class ($ کلاس ها ، $ مورد) {
     if (is_single () && $ item-> title == "Blog") {
             $ class [] = 'current-menu-item'؛
     }
     کلاسهای $ را برگردانید
}

کد بالا به سادگی بررسی می کند که یک صفحه پست است یا نه ، و عنوان مورد منو Blog است. اگر این معیارها مطابقت داشته باشد ، در حال اضافه کردن کلاس “Current-menu-item” است. برای اینکه بتواند با این طرحی که ما کار می کنیم کار کند ، باید یک کلاس سفارشی اضافه کنیم.

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

اگر به شدت به دنبال این کد بودید ، امیدواریم که این مقاله به شما کمک کند. همچنین می توانید سایر متغیرهای $ item را نیز بررسی کنید. برخی از مثالها عبارتند از: $ item-> ID ، $ item-> عنوان ، $ item-> xfn

ویرایش سریع: پس از ارسال این مقاله در توییتر ، یکی از کاربران ماdbrabyn اشاره کرد که ما می توانیم به راحتی این کار را با کلاس های CSS بدست آوریم. به عنوان مثال:

. تک # ناوبری .leftmenublog div {display: inline-block! important؛} 

اساساً آنچه که ما انجام دادیم یک div اضافی برای نمایش یک نماد پیکان به منوی ما اضافه شد. این پیکان فقط در صورتی نشان داده می شود که کلاس یا روی آن معلق باشد یا انتخاب شود. در غیر این صورت برای نمایش تنظیم شده بود: هیچ؛ با استفاده از کلاس body ، ما فقط نمایش عنصر div را فقط برای کلاس منوی خاص ایجاد کردیم.

منبع:
https://www.wpbeginner.com/wp-tutorials/add-a-custom-class-in-wordpress-menu-item-using-conditional-statements/.

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


Fatal error: Uncaught wfWAFStorageFileException: Unable to save temporary file for atomic writing. in /home/wekjriusd1/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:35 Stack trace: #0 /home/wekjriusd1/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/wekjriusd...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/wekjriusd1/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 35