SHET22

نمایش منو برای نقش کاربری خاص در وردپرس

نمایش منو برای نقش کاربری خاص در وردپرس

اگه سایتتون چند نوع کاربر داره، احتمالاً نمی‌خواید همه یک منوی یکسان ببینن. مثلاً می‌تونید لینک ورود رو فقط به مهمان‌ها، لینک حساب کاربری رو فقط به اعضا و یک گزینه مدیریتی رو فقط به مدیرها نشون بدید. توی این آموزش این کار رو با افزونه رایگان Nav Menu Roles انجام می‌دیم.

اول مشخص می‌کنیم خود وردپرس چه امکاناتی داره، بعد افزونه رو نصب می‌کنیم و نمایش هر گزینه منو رو به وضعیت ورود یا نقش کاربر وابسته می‌کنیم. در آخر هم یک محدودیت خیلی مهم رو می‌گیم: مخفی‌شدن لینک به معنی بسته‌شدن دسترسی به صفحه مقصد نیست.

آیا خود وردپرس این قابلیت رو داره؟

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

قبل از ادامه، نوع قالبتون هم مهمه. اگه توی پیشخوان مسیر «نمایش ← فهرست‌ها» رو می‌بینید، قالبتون کلاسیک یا ترکیبیه و می‌تونید مراحل این آموزش رو انجام بدید. اگه فقط «نمایش ← ویرایشگر» رو می‌بینید، قالبتون بلوکیه و منو با بلوک «راه‌بری» مدیریت می‌شه. این افزونه آموزش و تنظیمات اصلی خودش رو برای صفحه کلاسیک فهرست‌ها ارائه می‌کنه؛ پس سازگاریش با منوی قالب بلوکی رو باید قبل از استفاده روی سایت آزمایشی بررسی کنید.

نصب افزونه رایگان Nav Menu Roles

توی پیشخوان وردپرس به «افزونه‌ها ← افزودن افزونه تازه» برید. عبارت Nav Menu Roles رو جست‌وجو کنید، افزونه‌ای با همین نام رو نصب کنید و بعد روی «فعال‌کردن» بزنید. بهتره قبل از نصب، سازگاری نسخه فعلی افزونه رو با نسخه وردپرس و PHP هاستتون توی صفحه رسمی افزونه بررسی کنید.

نصب افزونه رایگان Nav Menu Roles
نصب افزونه رایگان Nav Menu Roles

بعد از فعال‌سازی، لازم نیست دنبال صفحه تنظیمات جداگانه بگردید. افزونه گزینه‌های جدیدش رو مستقیم به هر مورد از فهرست وردپرس اضافه می‌کنه.

تنظیم نمایش هر گزینه منو

تنظیم نمایش هر گزینه منو
تنظیم نمایش هر گزینه منو

حالا به «نمایش ← فهرست‌ها» برید و فهرستی رو انتخاب کنید که می‌خواید تغییرش بدید. یکی از گزینه‌های منو رو باز کنید تا بخش Display Mode رو ببینید. Display Mode یعنی مشخص‌کردن این‌که اون گزینه برای چه افرادی نمایش داده بشه.

  • Everyone: گزینه منو برای همه، چه مهمان و چه عضو، نمایش داده می‌شه.
  • Logged Out Users: گزینه فقط به افرادی نمایش داده می‌شه که وارد حساب کاربریشون نشدن. این انتخاب برای لینک ورود یا ثبت‌نام مناسبه.
  • Logged In Users: گزینه فقط به کاربرانی نمایش داده می‌شه که وارد سایت شدن. این انتخاب برای لینک حساب کاربری یا محتوای مخصوص اعضا کاربرد داره.

انتخاب نقش‌های کاربری مجاز

اگه Logged In Users رو انتخاب کنید، فهرست نقش‌های کاربری پایین همون بخش نمایش داده می‌شه. نقش یعنی سطحی مثل مشترک، نویسنده، ویرایشگر یا مدیر که مشخص می‌کنه هر کاربر چه کارهایی می‌تونه انجام بده. نقش‌های موردنظرتون رو انتخاب کنید و در پایان روی «ذخیره فهرست» بزنید. اگه هنوز با نقش‌ها آشنا نیستید، آموزش مدیریت کاربران وردپرس کمکتون می‌کنه.

انتخاب نقش‌های کاربری مجاز
انتخاب نقش‌های کاربری مجاز

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

آزمایش منو برای مهمان‌ها و اعضا

بعد از ذخیره فهرست، سایت رو یک‌بار در پنجره ناشناس مرورگر باز کنید تا منوی مهمان‌ها رو ببینید. بعد با یک حساب آزمایشی وارد بشید و همون صفحه رو دوباره بررسی کنید. اگه چند نقش دارید، برای هر نقش یک حساب آزمایشی جدا بسازید تا مطمئن بشید گزینه‌های منو درست نمایش داده می‌شن.

مخفی شدن منوی ورود و عضویت برای کاربر مهمان
مخفی شدن منوی ورود و عضویت برای کاربر مهمان

مخفی‌کردن منو دسترسی به صفحه رو نمی‌بنده

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

افزونه If Menu هم قبلاً برای شرطی‌کردن منو معرفی شده، ولی پیشنهاد اصلی این آموزش نیست؛ چون وضعیت نگهداری و سازگاری نسخه فعلیش باید قبل از استفاده با دقت بررسی بشه. برای این آموزش همون Nav Menu Roles رایگان انتخاب ساده‌تر و متمرکزتریه.

جمع‌بندی

با Nav Menu Roles می‌تونید هر گزینه منو رو برای همه، مهمان‌ها، اعضای واردشده یا نقش‌های مشخص نمایش بدید. این روش برای قالب‌هایی مناسبه که صفحه کلاسیک «نمایش ← فهرست‌ها» رو دارن. فقط یادتون نره بعد از هر تغییر، منو رو با حساب‌های آزمایشی بررسی کنید و برای بستن دسترسی واقعی به محتوا، محدودیت جداگانه‌ای روی صفحه مقصد بذارید.

آیا خود وردپرس می‌تونه منو رو بر اساس نقش کاربر نمایش بده؟

خود وردپرس امکان ساخت و ویرایش منو رو داره، ولی تنظیم آماده‌ای برای شرطی‌کردن هر گزینه بر اساس نقش کاربری نداره. برای صفحه کلاسیک فهرست‌ها می‌تونید از افزونه رایگان Nav Menu Roles استفاده کنید.

این روش برای قالب‌های بلوکی هم مناسبه؟

این آموزش بر پایه صفحه کلاسیک «نمایش ← فهرست‌ها» نوشته شده. قالب‌های بلوکی منو رو با بلوک راه‌بری داخل ویرایشگر سایت مدیریت می‌کنن؛ پس سازگاری افزونه رو قبل از استفاده روی یک سایت آزمایشی بررسی کنید.

مخفی‌کردن گزینه منو دسترسی به صفحه رو هم می‌بنده؟

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

نظر شما در این مورد چیه؟

  1. U342232۲۹ خرداد ۱۴۰۵

    چجوری میتونم تو حساب کاربری یا پنل کاربری مشتری نقشش رو نشون بدم ک بدونه این نقش رو داره؟

    • رضا راد۳۰ خرداد ۱۴۰۵

      از این کد استفاده کنید:
      $user = wp_get_current_user();
      $roles = $user->roles; // array of role slugs, e.g. [‘administrator’]

      if ( ! empty( $roles ) ) {
      echo esc_html( $roles[0] ); // first role
      }

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسدر حال حاضر آفلاین هستیم. لطفاً پیام بگذارید تا در اولین فرصت پاسخ دهیم.آفلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.