گاهی نیاز نمیبینیم که فهرستها را به همه افراد در سایت نشان دهیم. یعنی در واقع میخواهیم محدودیتهایی را برای نمایش فهرستهایمان قائل شویم تا فقط افراد خاصی آن را مشاهده کنند. آیا میدانید چطور باید این امکان را در وردپرس پیادهسازی کرد؟ محدودیت برای نمایش فهرستها در وردپرس تنها نیازمند یک افزونه کاربردی است که با نصب آن میتوانید تنظیماتی را انجام داده و به دلخواه خود برسید. ما برای این منظور افزونه If Menu را انتخاب کردیم و آموزش امروز را به آن اختصاص دادیم.
محدودیت برای نمایش فهرستها در وردپرس
آنچه در این مقاله به اختصار خواهید خواند:
- منطقهای شرطی در منوهای وردپرس
- معرفی افزونه If menu
- استفاده از افزونه If Menu در ایجاد محدودیت برای نمایش فهرستها در وردپرس
- ایجاد محدودیت برای نمایش فهرستها در وردپرس با استفاده از کد
منطقهای شرطی در منوهای وردپرس
منوهای موجود در وردپرس بعضی مواقع نباید به همه نشان داده شوند، در واقع اینجور مواقع میگوییم به دنبال عدم نمایش فهرستها به همه کاربران هستیم. از این رو کارهای مختلف و زیادی وجود دارند که میتوانید روی منوها انجام دهید تا به آنچه میخواهید برسید. اما اغلب اوقات، وردپرس هنگام صحبت از ساختار و منطق شرطی، ممکن است شما را حین کار دچار سردرگمی کند؛ مگر اینکه کد را کاملا بشناسید و یا افزونهای را پیاده سازی کنید که از کارکرد آن آگاه باشید.
استفاده از منطق شرطی در وردپرس امکان ایجاد منوهای پویای وردپرس را برای شما فراهم میکند. ایجاد منوی وردپرس پویا با منطق شرطی برای مواردی مانند:
- عدم نمایش منوها برای همه کاربران در صفحات خاص
- نمایش منوهای مختلف برای کاربران وارد شده
- سبک سفارشی در منوهای خاص
در ابتدا بیایید با هم ببینیم که منطق شرطی چیست و چگونه میتوانیم به راحتی آن را در فهرستهای وردپرس اضافه کنیم.
منطق شرطی چیست؟
در وردپرس از منطق شرطی برای مواردی مانند فرمهای وردپرس استفاده میشود. این کار میتواند به شما کمک کند تا عملکرد خاصی را بر روی فرم اجرا و نمایش دهید که بدون استفاده از این منطق نمیتوانید. فرم میتواند براساس جواب یا شاید یک جعبه کشویی از جوابها بر اساس یک سؤال در فرم تهیه شده باشد. براساس پاسخهای داده شده و انتخابهای انجام شده توسط کاربر، فرمها به صورت پویا از کاربری به کاربر دیگر تغییر میکند. شاید این جمله کمی گیج کننده به نظر برسد، برای فهمیدن آن به این نکته توجه کنید که اگر کاربری وارد سایت شما شود و ثبت نامی را انجام نداده باشد، پس از دیدن بعضی از موارد عاجز است. زیرا که این قسمتها مختص مشترکین سایت خود طراحی کردهاید و کاربر عادی از دیدن آن ناتوان است.
همین مفهوم در هنگام اضافه کردن منطق شرطی به منوهای وردپرس نیز کاربرد دارد. شما یک منوی وردپرس پویا را بر اساس منطق شرطی ایجاد میکنید. این منوها و نحوه عملکرد آنها را براساس اقدامات خاصی که کاربران انجام میدهند، ظاهر میشوند. اگر میخواهید منطق شرطی را به منوهای وردپرس اضافه کنید، دو روش مختلف وجود دارد که میتوانید آن را انجام دهید.
- با استفاده از افزونه If menu
- با استفاده از کدنویسی
معرفی افزونه If menu
آسانترین راه برای ایجاد منوهای پویا در وردپرس با منطق شرطی و محدودیت برای نمایش فهرستها در وردپرس، استفاده از افزونه وردپرس است. یک افزونه عالی که تنظیم و استفاده از آن آسان است. افزونهای که امروز برای اضافه کردن منطق شرطی به یک منوی وردپرس از آن استفاده خواهیم کرد، If Menu نام دارد.
این افزونه در منو به شما اجازه میدهد تا براساس قوانین خاص، مشاهده و بازدید از وبسایت خود را کنترل کنید. برخی از کارکردهای اصلی این افزونه عبارتند از:
- افزایش توانایی یک مدیر برای نمایش یک مورد از فهرستها تنها در صورتی که کاربر سایت فعلی وارد سیستم شده باشد.
- مخفی کردن موارد مختلف فهرست را براساس استفاده از دستگاه تلفن همراه.
- نمایش موارد خاص برای مدیر و ویرایشگران محتوا.
- مخفی کردن لینکهای ورود و ثبت نام وقتی کاربر قبلاً وارد سیستم شده باشد.
- نمایش موارد منو براساس موقعیت مکانی کاربر.
- نمایش موارد پنهان شده منو فقط برای کاربران دارای عضویت.
- نمایش موارد مختلف منو با زبان مختلف از جمله زبان انگلیسی یا اسپانیایی.
مطمئنا استفاده از این افزونه برای شما آسان خواهد بود.
ویژگیهای افزونه دیگر
- قابلیت تنظیم براساس مجموعه اصلی قوانین نمایش
- حالت کاربران بر اساس کاربر و یا ورود به سیستم است
- نقشهای کاربران براساس نویسنده، ویرایشگر، مدیر و غیره
- تشخیص نوع صفحه که صفحه اول است یا پست
- بایگانی صفحات(براساس سال، دسته، نتایج جستجو و غیره)
- دستگاه بازدیدکننده موبایل است یا خیر
- قوانین نمایش پیشرفته که فقط در نسخه پیشرفته افزونه موجود است
- موقعیت بازدیدکننده؛ ردیابی کشور بازدیدکننده
- زبان مورد استفاده بازدیدکننده؛ تشخیص زبان انتخاب شده بازدیدکننده
- نمایش منوها برای کاربران ووکامرس با اشتراک فعال
- نمایش منوها برای مشتریانی ووکامرس که برنامههای عضویت فعال دارند
- تشخیص اینکه کاربران در گروههای خاصی قرار دارند یا خیر
- تشخیص سطح عضویت کاربران
- تشخیص و محدودیت برای نمایش فهرستها در وردپرس
- قابلیت ترکیب چندین قانون برای مشاهده یک مورد در فهرست
- نمایش در صورت اینکه کاربر وارد سیستم شده است و دستگاه تلفن همراه است
- نمایش در صورت اینکه کاربر Admin AND صفحه اول باشد یا خیر
- دارای پشتیبانی از افزودن قوانین سفارشی خود
برای اضافه کردن منطق شرطی به منوهای وردپرس با استفاده از این افزونه، اولین کاری که باید انجام دهید نصب و فعال سازی افزونه If Menu است.
استفاده از افزونه If Menu برای عدم نمایش فهرستها به همه کاربران
پس از نصب و فعال سازی افزونه، بر روی ” Appearance ” یا نمایش و سپس روی فهرست کلیک کنید و بلافاصله میتوانید تنظیمات این افزونه را در سایت خود، شروع کنید.
برای این کار کافی است هر منویی را که میخواهید روی آن کار کنید را انتخاب کنید. در همان قسمت منو، یکی از آیتمهای منوی مورد نظر خود را انتخاب کنید و روی قسمت کشویی آن کلیک کنید تا باز شود. در قسمت کشویی آیتم منو، کادر انتخاب با عنوان ” Enable visibility rules ” را مشاهده خواهید کرد. اکنون باید این کادر را بررسی کنید.
هنگامی که این کادر را علامت بزنید، تمام گزینههای منطق شرطی مربوط به آیتمها در منوی کشویی ظاهر میشود. شما به سادگی منطق شرطی را که می خواهید برای هر از آیتمهای فهرست ایجاد کنید را انتخاب کنید. این بستگی به شما دارد که کدام گزینه را انتخاب کنید. برای این کار ابتدا “Show” یا “Hide” را از فهرست کشویی موجود، انتخاب کنید.
اکنون به قسمت بعدی این گزینهها، یعنی “IF” میرویم. این قسمت در مورد نوع کاربر است. شما در اینجا مشخص میکنید که این آیتم شرطی برای کدام کاربر اجرا شود. یا به عبارتی ایجاد محدودیت برای نمایش فهرستها در وردپرس برای کدام کاربر انجام شود. البته دارای گزینههای دیگری همچون انتخاب نوع صفحه، زبان و وسیله مورد نیاز نیز هست.
وقتی این دو انتخاب را انتخاب کردید، آن آیتم خاص از منو را اکنون براساس منطق شرطی که برای آن اعمال کردهاید، نمایش داده میشود. همانطور که مشاهده میکنید در این مثال، در صورتی که کاربر “مدیر” باشد، فهرست یا منوی خود را تنظیم کردهایم.
علاوه بر این میتوانید بیش از یک نوع منطق شرطی را به یک آیتم از منو اضافه کنید. به سادگی روی نماد “+” در سمت راست کلیک کنید و یک منوی کشویی دیگر ظاهر خواهد شد. این قسمت به شما این امکان را میدهد که نوع دیگری از منطق شرطی را در مورد منو بکار بگیرید و آن را پویاتر جلوه دهید.
به یاد داشته باشید پس از انتخاب همه موارد خود در مورد منو وردپرس که در آن کار میکنید، روی دکمه “ذخیره منو” کلیک کنید تا تمام تغییرات اعمال شود.
ایجاد محدودیت برای نمایش فهرستها در وردپرس با استفاده از کد
در این روش چند مرحله بیشتر وجود دارد که میتوانید برای اضافه کردن شرایط بیشتر به آیتمهای منو، از آن استفاده کنید. همانطور که
میدانید وردپرس در واقع یک لیست کامل از برچسبهای شرطی را در خود دارد که میتوانید در تمام پروژههای خود از آنها استفاده کنید. اگر میخواهید لیست مفصل و کامل آنها را مشاهده کنید، میتوانید آن را در بین برچسبهای وردپرس برای برچسبهای شرطی پیدا کنید.
از تمام برچسبهای شرطی که در آن صفحه موجود است، میتوانید از افزونه If Menu استفاده کنید. برای انجام این کار، شما باید برچسب شرطی را که میخواهید از آن استفاده کنید با کد زیر ترکیب کنید.
در این مقاله میخواهیم یکی از آیتمهای فهرست را در صفحات نوع ارسال سفارشی نشان داده یا مخفی کنیم. بنابراین، میتوانید با اضافه کردن کد زیر به فایلهای function.php این کار را انجام دهید. میتوانید با کلیک کردن بر روی “نمایش” و سپس Theme Editor یا ویرایشگر پوسته را انتخاب کنید تا به فایلهای مربوطه دسترسی پیدا کنید. در صفحه ویرایش تمها، روی فایل (Theme Functions (actions.php کلیک کنید.
سپس کد زیر را به فایل مورد نظر اضافه کنید:
</pre> // theme's functions.php or plugin file add_filter('if_menu_conditions', 'my_new_menu_conditions'); function my_new_menu_conditions($conditions) { $conditions[] = array( 'id' => 'single-my-custom-post-type', // unique ID for the rule 'name' => __('Single my-custom-post-type', 'i18n-domain'), // name of the rule 'condition' => function($item) { // callback - must return Boolean return is_singular('my-custom-post-type'); } ); return $conditions; } <pre>
میتوانید از کد بالا برای اضافه کردن شرایط دیگر به منوهای وردپرس خود نیز استفاده کنید.
امکان عدم نمایش فهرستها به همه کاربران در وردپرس
اگر میخواهید راه ارتباط برقرار کردن منو با کاربران خود را براساس این که وارد سیستم شوند یا خیر، یا اینکه به طور فعال در یکی از
عضویتهای شما دارای عضویت شدهاند یا نه را کنترل کنید یا به طور کلی اقدام به محدودیت برای نمایش فهرستها در وردپرس، کنید؛ راهکارهای متمایزی وجود دارد. به این کار ایجاد شرط برای استفاده از منو یا شرط گذاری میگویند. استفاده از منطق شرطی در منوهای وردپرس به شما امکان میدهد تا از تمهای زیبا استفاده کرده و به آن جلوهای خاص ببخشید تا کاربران سایت از آن لذت ببرند. امیدوارم این مقاله به شما نشان دهد که چگونه به راحتی میتوانید منطق شرطی را به منوهای وردپرس اضافه کنید. با نشان دادن منوها فقط در صورت لزوم، سایت خود را آسانتر و قابل فهمتر کنید.
iomgha 5 سال عضو همیار وردپرس
با سلام و خسته نباشید من از این افزونه استفاده کردم میخوام کاربرانی که عضو نیستند و گذری وارد سایت می شوند، مثلا منو آموزش رو نبینند حالا کدوم نقش رو مخفی کنم؟
هر چی گشتم پیدا نکردم لطفا راهنمایی کنید
ممنون
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
افزونه رو برای بروزرسانی گذاشتیم. بزودی محتوای اون رو بروز میکنیم و توضیحات تکمیلی خواهیم داد.
ولی شما میتوانید اینجا مشخص کنید که فقط افراد عضو مشاهده کنند.
حسینی
سلام
من میخواهم یک سایت با وردپرس طراحی کنم که صفحه اول آن هیچ منویی ندارد و فقط شامل 4 عکس هست که کاربر با کلیک روی هر عکس، به بخش مربوطه هدایت میشود و از آنجا منوها شروع میشود.
به عبارتی 4 بخش دارد که هرکدام از این بخشها 4 منوی متفاوت دارند. آیا وردپرس و این افزونه میتواند چنین منوهای جداگانه ای برای من تولید کند؟
***ممنون میشم اگه بتونید راهنمائیم کنید. خیلی وقته دنبال راه حل این قضیه هستم.***
سپاس
محمدی
سلام:
من از افزونه کاربران ویژه استفاده می کنم می خواستم کاربران ویژه رو به لیست افزونه اضافه کنم…لطفا راهنمایی نمایید.ممنون
پویا
سلام
این افزونه با برخی قالبها سازگار نیست
مثل قالبی که من باهاش کار میکنم
توضیج میکنم به جاشJC Submenu رو استفاده کنید :))
مجید غفورزاده
بسیار عالی
واقعا به دردم خورد
این افزونه عالیه حرف نداره
Mahdi1 9 سال عضو همیار وردپرس
سلام.
برای این که در منوی سایت تب اصلی به صفحه ای ارجاع نشود و فقط زیرمنو ها قابلیت ارجاع داشته باشند چه کار باید انجام داد؟
همه جا میبینم این کار رو انجام دادند ولی آموزشش هیچ جا نیست!
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
فهرست اصلی باید به صورت پیوند سفارشی انتخاب بشه. یعنی فهرستی بسیازید که از بخش پیوندهای سفارشی باشد. (داخل نمایش>> فهرست)
Mahdi1 9 سال عضو همیار وردپرس
ببخشید منظورتون همون پیوند دلخواهه؟(توی وردپرس من فقط توفهرست برگه ها، نوشته ها، پیوند دلخواه، دسته ها و ساختار ها هست.
بعد برای اون تب اصلی په پیوندی بذارم؟ به جای گذاشتن خود برگه ها و نوشته ها لینکشون رو بذارم توپیوند دلخواه و بعد تو فهرست؟ ممنون میشم یکم بیشتر توضیح بدید یا یه لینک بدید که توضیح داده باشه.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
مگه نمیخواید پیوندی بهشون نخوره ؟ باید اصلی رو با پیوند دلخواه در همون بخش فهرست ها بسازید و سپس زیر منوها رو در زیرش تنظیم کنید.
Mahdi1 9 سال عضو همیار وردپرس
خیلی ممنون
متوجه شدم
درست شد.
Mahdi1 9 سال عضو همیار وردپرس
منظورم اینه که مثلا در همین سایت خودتون وقتی از منو روی قالب وردپرس کلیک کردیم کاربر به جای دیگه ای منتقل نشه و صفحه جدیدی باز نشه فقط تو همون صفحه اصلی زیرمنو ها روببینه. یعنی اصلا صفحه یا برگه ای به اسم قالب وردپرس دردسترس کاربر نباشه و فقط به زیر منو ها دسترسی داشته باشه. توی توضیحی که دادید من چنین قابلیتی رو پیدا نکردم.
Mahdi1 9 سال عضو همیار وردپرس
مثلا الآن در سایت گوگل اگر روی تب” بیشتر “که در منوی بالای صفحه هست کلیک کنید هیچ صفحه جدیدی باز نمیشه.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
منم دقیقا برای همین موضوع توضیح دادم خدمتتون
MKSoft72 9 سال عضو همیار وردپرس
با سلام و تشکر بابت آموزشهای خوبتون.
من یه افزونه میخواستم که بتونم لیست دوره های آموزشی که در سایت برگذار میشه رو نشون بدم.
در نهایت کاربر بتونه در یک دوره ثبت نام کنه و از اخبار برگذاری و… دوره باخبر بشه.
چنین افزونه ای هست؟
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
افزونه ای با نام learnpress هست که قراره من آموزشش رو بذارم، فقط مشکلش اینه که با درگاه پی پال کار میکنه به همین علت تامل کردم
نادر
این افزونه تکمیل شده؟
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
منظورتون رو متوجه نمیشم.تکمیل هست یعنی چی ؟
علیرضا
درگاه پی پال تنها داره ولی میشه توش از درگاه های ووکامرس استفاده کرد و باید ووکامرس نصب باشه.. مشکلش فکر کنم تنها همون نداشتن ریال و تومان هستش! چجوری میشه دلار رو تبدیل به تومان کرد با فانکشن؟
hamidhatami 9 سال عضو همیار وردپرس
سلام من ایمیل زدم ولی جوابی ندادید.منتظرم همچنان
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
من ایمیلی دریافت نکردم! در قسمت پرسش و پاسخ مطرح کنید تا پیگیری بشه
hamidhatami 9 سال عضو همیار وردپرس
من یه سوال دارم ممنون میشم جواب بدید.
من یه حالتی میخوام که مثلا من ۵ تا کاربر دارم با یوزرهای مختلف.
بعد یه برگه ساختم به اسم پیشنهاد ویژه بعد براش زیر منو درست کنم مثلا اولیش بشه پشنهاد ویژه برای نماینده ۱ دومیش بشه پیشنهاد ویژه برای نماینده شماره ۲٫میخوام مشخص کنم که اگه مثلا نماینده شماره ۲ روی برگه پیشنهاد ویژه نگه میداره فقط گزینه دوم که میشه پیشنهاد ویژه برای نماینده شماره ۲ براش نشون داده بشه دیگه برگه پیشنهاد ویژه برای نماینده شماره ۱ براش نشون داده نشه.یعنی هرکی با user خودش که وارد میشه بشه براش مشخص کرد که برگه مربوط به خودشو ببینه و بقیه براش مخفی باشن.من چند روزه دارم میگردم اما نتونستم سر در بیارم.ممنون میشم کمک کنید
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
ایمیل بزنید تا بررسی بشه
bahar@hamyarwp.com