If Menu — Visibility control for Menu Items

Описание

Control what menu items your site’s visitors see, based on visibility rules. Here are a few examples:

  • Display a menu item only if User is logged in
  • Hide menu items if Device is mobile
  • Отображать элементы меню только для Администраторов и Редакторов
  • Hide Login or Register links for Logged in Users
  • Display menu items for Users from US or UK
  • Display menu items only for Customers with active membership
  • Display menu items for visitors browsing with Language English or Spanish

The plugin is easy to use, each menu item will have a new option “Change menu item visibility” which will enable the selection of visibility rules (example in Screenshots).

Основные функции

  • Основной набор правил видимости
    • Состояние пользователя Авторизован ли пользователь
    • Роли пользователя Администратор Редактор Автор и т.д.
    • Тип страницы Главная страница Одна страница Страница записи
    • Is Archive page (year, category, search results, etc)
    • Visitor device Is Mobile
  • Advanced visibility rules — requires Premium plan
    • Visitor location — detect visitor’s Country
    • Visitor language — detect visitor’s selected Language
    • WooCommerce Subscriptions — Display menus for users with active subscription
    • WooCommerce Memberships — Display menus for customers with active membership plans
    • Groups — Detect if users are in specific groups
    • WishList Member — Detect the users’ membership level
    • Restrict Content Pro — Detect the users’ subscription level
  • Несколько правил — сочетание нескольких правил для видимости элементов меню
    • показать еслиПользователь авторизован на вашем сайте И используется Мобильное устройство
    • показать элемент меню если Пользователь Администратор И если это главная страница
  • Поддержка добавления ваших произвольных правил

Example of adding a custom visibility rule is described in the FAQ section.

Скриншоты

  • If Menu website demo
  • Включить правила видимости для элементов меню
  • Пример правил видимости

Часто задаваемые вопросы

If Menu is broken, no visibility rules are available

There’s a known limitation with adding functionality for menu items in WordPress, and conflicts may happen between some plugins and themes.

If there are multiple plugins that extend Menu Items, for example If Menu and a plugin for Menu Icons, only one of them can add the needed functionality and the other one won’t work as expected.

Это постоянная проблема с WordPress, которая, надеюсь, будет исправлена в будущих обновлениях.

If the «Menus» page is blank or options for visibility rules are not displaying, there is a way to test which plugin/theme causes this conflict.
Please disable other plugins or themes until you find the one that causes the problem, and contact the respective developers.
In the message include the link to WordPress ticket about menu items https://core.trac.wordpress.org/ticket/18584 where they can see detailed info on how to fix the problem.

Changes to menus are not saved

This problem may happen on sites with a large number of menu items.
In most cases, this is not a limitation or problem caused by plugins or WordPress, but by the hosting server.

Your hosting provider or server limits the amount of data that can be sent to WordPress for saving in database.
The setting is named «PHP max_input_vars» and it’s value should be increased, ex: max_input_vars = 200 to max_input_vars = 500.
Contact your hosting provider or make the change yourself if you have access. More details can be found here https://core.trac.wordpress.org/ticket/14134

Как я могу добавить произвольное правило видимости для элементов меню?

Новые правила могут быть добавлены любым другим плагином или темой.

Пример добавления нового произвольного правила для отображения/скрытия элемента меню когда текущая страница является произвольным типом записи.

// 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;
}
Где я могу найти условные теги (функции)?

В WordPress существует множество Условных тегов, которые могут использоваться для создания различных пользовательских правил для самых разных комбинаций. Список условных тегов достаточно большой и любой разработчик темы/плагина сможет выбрать для себя необходимые условные теги.

Отзывы

11.08.2020
Esxelente lo que etsaba buscando para el ecoommerce, ahora puede ocultar el boton de la tienda en la tienda y el el boton de home en el home, en un menu flotante en la parete baja para dispositivos moviles, muchas gracias por tu aporte, sencillo y facil 100% recomendado
07.07.2020
I cannot fault this. It is simple and it works every time. I've got it running on at least 12 sites now.
20.06.2020
Il y a quelques temps que je cherchais un plugin pour faire ce travail et un jour suite à des recherches, je suis tomber sur celui-ci. Que dire de plus qu'excellent et nickel, félicitations pour cet excellent plugin.
Посмотреть все 99 отзывов

Участники и разработчики

«If Menu — Visibility control for Menu Items» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«If Menu — Visibility control for Menu Items» переведён на 3 языка. Благодарим переводчиков за их работу.

Перевести «If Menu — Visibility control for Menu Items» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

0.16.1 — 11 April 2020

  • Fixed — Improved compatibility with other plugins that extend menu items

0.16 — 1 April 2020

  • Added — Visibility rule — Is Archive page
  • Updated — Ensure compatibility with WordPress 5.4
  • Updated — Improved compatibility with WooCommerce Membership/Subscription plugins

0.15 — 2 July 2019

  • Updated — Texts & styles for If Menu settings page
  • Fixed — PHP error that may appear for Visibility Rules saved before If Menu v0.9

0.14 — 2 May 2019

  • Added — «User registration is allowed» visibility rule
  • Updated — Improved support for setting multiple visibility rules, without eval function from PHP
  • Updated — Show Membership Levels from «WishList Member» plugin
  • Updated — Compatibility with WordPress 5.2

0.13 — 8 April 2019

  • Updated — Compatiblity with latest WordPress version
  • Updated — Texts & more info about Premium plan
  • Added — Visibility rule — User has expired Subscription, integration with Restrict Content Pro plugin
  • Updated — Visibility rule — Restrict Content Pro Membership shows Level number

0.12.2 — 3 September 2018

  • Fixed — PHP error blocking page load (function formatting language names)

0.12 — 3 September 2018

  • Added — Visiblity rule — Detect visitor’s selected language
  • Updated — Link to Support Request email
  • Fixed — Better check for Premium plan after purchase (was not enabled in some cases)

0.11 — 23 Jul 2018

  • Fixed — Blank page on «Appearance -> Menus»
  • Fixed — Better compatitility with themes / plugins

0.10 — 8 May 2018

  • Added — Visibility rule — User has Subscription Level, integration with Restrict Content Pro plugin
  • Fixed — Display all WooCommerce Membership plans and save the visibility rule
  • Fixed — Small render artifact in menu item title

0.9 — 21 April 2018

This version requires PHP version to be at least 5.4
* Added — Visibility rule — Customer has active membership, integration with WooCommerce Memberships plugin
* Added — Visibility rule — Customer has active Job Manager Listing Subscription, integration with Listing Payments for WP Job Manager plugin
* Added — Option to disable menu item filtering in Admin panel
* Updated — Texts and notices

0.8.3

Release Date — 22 February 2018

  • Fixed — Support for PHP <= 5.3, fixes error

0.8.2

Release Date — 20 February 2018

  • Fixed — Support for older visibilty rule names, fixes PHP warning

0.8.1

Release Date — 20 February 2018

  • Fixed — Better options checking, fixes PHP warning

0.8

Release Date — 19 February 2018

  • Added — Visibility rules with multiple options. Requires Premium plan
  • Added — Visibility rule — User country
  • Added — Visibility rule — Is Super Admin on MultiSite
  • Added — Visibility rule — User is in Group, integration with Groups plugin
  • Added — Visibility rule — User has subscription, integration with WooCommerce Subscriptions plugin
  • Added — Visibility rule — User has active membership plan, integration with WooCommerce Memberships plugin
  • Added — Visibility rule — User membership level, integration with WishList Member plugin
  • Updated — Better conflict detection for Nav_Menu Walker
  • Fixed — translation strings & function used

0.7

Дата релиза — 18 сентября 2017

  • Добавлено улучшение — более красивый вид для правил видимости
  • Добавлена функция исключения администраторов, которая позволяет им видеть скрытые элементы меню на сайте
  • Добавлена страница настроек

0.6.3

Дата релиза — 17 августа 2017

  • Новое правило видимости — Язык RTL
  • Исправление — Работает одно правило с отключенной на сервере функцией Eval

0.6.2

Дата релиза — 8 августа 2017

  • Исправление — Обратная совместимость с PHP < 5.4

0.6.1

Дата релиза — 7 августа 2017

  • Улучшение — Изменены надписи и тесты для более удобного использования
  • Улучшение — Улучшена совместимость с последними версиями WordPress
  • Улучшение — улучшена совместимость с плагинами для переводов
  • Исправление — обнаружение конфликтов с другими плагинами

0.6

Дата релиза — 27 августа 2016

  • Улучшение — Правила видимости теперь работают для стандартных и произвольных ролей пользователя (добавляются плагинами или темами) спасибо Daniele
  • Улучшение — Сгруппированы правила для Пользователей, Страниц и других типов
  • Исправлено — Фильтр элементов меню в административной панели
  • Исправление — Улучшен код при сохранение элементов меню

0.5

Дата релиза — 20 августа 2016

  • Улучшение — Поддержка WordPress версии 4.6
  • Функция — Новое правило для проверки авторизации пользователя на текущем сайте в режиме Multisite (мультисайт) [функция запрошена здесь](https://wordpress.org/support/topic/multi-site-user-is-logged-in-condition)
  • Функция — Добавлена поддержка нескольких правил для элемента меню. спасибо за идею iliasma
  • Улучшение — Добавлены переводы RO & DE (румынский и немецкий языки)

0.4.1

Дата релиза — 13 декабря 2015

  • Исправление — Исправлена ошибка при попытки добавить новый элемент меню

0.4

Дата релиза — 29 ноября 2015

0.3

  • Значок плагина
  • Установлена совместимость с WordPress версии 4

0.2.1

Незначительные исправления

  • Исправлено — Редактирование меню — отображение/скрытие правил при добавлении нового элемента (спасибо Joseph Segal)

0.2

Обновление для лучшей совместимости с более новыми версиями WordPress

  • Функция — доступ к объекту элемента меню при вызове правила (спасибо BramNL)
  • Исправление — появление сообщения с подтверждением о выходе со страницы, даже если вы не внесли никаких изменений в меню (спасибо Denny)
  • Исправление — обновлен класс Walker Walker_Nav_Menu_Edit для более лучшей совместимости с новыми версиями WP
  • Исправлено — пример в файле Readme (спасибо BramNL)

0.1

  • Выпуск плагина. Включенные базовые правила для элементов меню