مدیریت نمایش فهرست سایت با If Menu
اگر شما بخواهید یک منو فقط به کاربری که در وردپرس وارد شده است نمایش داده شود ویا اینکه یک بخش دیگر از فهرست فقط در صفحه تک نوشته ها وجود داشته باشد در آموزش مدیریت نمایش فهرست سایت با If Menu با تیم وب یار همراه باشید:
نمایش شرطی منو بر اساس نقش کاربری
برای این کار به صورت عادی لازم است که یک کلاس خاص در CSS ایجاد کرده و آن را از دید کاربر مخفی نمود . اما این کار بدی های خود را دارد ، به عنوان مثال کاربری که اندکی با کدنویسی آشناست به راحتی با دیدن سورس صفحه شما می تواند لینک قسمت مخفی شده را پیدا کرده و احتمالا سو استفاده های مد نظر خود را انجام دهد ! یک راه برای انجام این کار استفاده از افزونه ایست که در این مطلب به شما معرفی می کنیم.
ابتدا ، افزونه کاربردی If Menu را نصب کرده و آن را فعال کنید . این افزونه بدون هیچ پنل تنظیماتی ارائه شده است . پس از فعال سازی به بخش فهرست ها مراجعه کرده و یک فهرست را برای ویرایش انتخاب کنید .
یک آیتم از منو را انتخاب کرده و آن را برای ویرایش مشخصات ، گسترش دهید . تیک گزینه Enable Conditional Logic را فعال کرده و شرایط نمایش یا عدم نمایش آیتم فعلی را انتخاب نمایید .
به عنوان مثال با انتخاب show و گزینه user is logged in این آیتم از فهرست تنها به کاربرانی که در وردپرس وارد شده اند نمایش داده خواهد شد . یا گزینه user is Admin آیتم را فقط در صورتی نمایش می دهد که کاربر فعلی دارای نقش مدیر باشد .
پس از ویرایش تنظیمات روی دکمه ذخیره کلیک کرده تا تغییرات شما اعمال شود .
افزونه If Menu شرایط نمایش یا پنهان کردن آیتم های منو را عملی میکند و شروطی که می توانید از بین آنها گزینه های مکدنظر خود را انتخاب نمایید شامل موارد زیر است:
حالت کاربر: آیا کاربر لاگین کرده است یا خیر.
نقش کاربر: آیا کاربر مدیر، ویرایشگر، نویسنده، مشارکت کننده یا مشترک است.
نوع صفحه: صفحه اصلی (Front Page)، نوشته های تکی (Single Post)، برگه (Page)
دستگاه مورد استفاده: ظاهر/پنهان کردن آیتم های فهرست اگر کاربر سایت شما را از دستگاه تلفن همراه مشاهده می کند.
زبان: اگر زبان RTL یا LTR است.
اضافه کردن شرایط جدید برای مدیریت نمایش منو های سایت وردپرسی
افزونه If Menu یک افزونه جدید در مخزن وردپرس است و کلیه شرایط موجود در وردپرس را فعلا به صورت پیش فرض ندارد . همان طور که می دانید تعداد زیادی شرایط به صورت پیش فرض در وردپرس وجود دارد
شما قادر هستید که هر یک از شرایط موجود در وردپرس را به افزونه اضافه کنید ، به عنوان مثال فرض می کنیم که می خواهید یک آیتم از فهرست ها را در برگه های مربوط به پست های سفارشی نمایش ندهید . برای این کار کافی است کد زیر را به فایل Functions.php قالب خود اضافه کرده و آن را ذخیره کنید :
add_filter( ‘if_menu_conditions’, ‘wpb_new_menu_conditions’ );
function wpb_new_menu_conditions( $conditions ) {
$conditions[] = array(
‘name’ => ‘If it is Custom Post Type archive’, // عنوان شرایط
‘condition’ => function($item) { // callback – must return TRUE or FALSE
return is_post_type_archive();
}
);return $conditions;
}
این کد به صورت زیر در بخش ویرایش منوها نمایش داده خواهد شد .