Как показывать разное меню для разных категорий ваших читателей

Примечание: Этот текст может содержать некоторые партнерские ссылки, а это значит, что я зарабатываю небольшую комиссию без каких-либо дополнительных затрат с вашей стороны, если вы воспользуетесь этими ссылками. Спасибо за понимание и поддержку.

Например, вам необходимо сделать так, чтобы зарегистрированные читатели видели один вариант меню, а НЕ зарегистрированные — другой. Или: показывать разные варианты меню при переходе на страницы сайта.

Любой вариант изменения списка ярлыков меню — это работа с условной логикой запросов. Если ….. — тогда показать …… Если …. , тогда скрыть ….

Как это сделать?

Как всегда, есть минимум два варианта решения: с помощью плагина WordPress и с помощью добавления дополнительных функций в файл functions.php вашей активной темы.

Вариант первый. С помощью плагина WordPress

Бесплатный плагин WordPress, который поможет вам скрыть или показать отдельные ярлыки меню для разных типов читателей (зарегистрированые или нет, редакторы, авторы, подписчики или участники), называется — If Menu.

Скачать его можно по ссылке — https://downloads.wordpress.org/plugin/if-menu.zip

После установки и активации он уже работает. Перейдите в раздел Внешний вид -> Меню, откройте параметры любого ярлыка меню и там вы увидите следующее:

Как показывать разное меню для разных категорий ваших читателей

Сначала вы выбираете вариант показать или скрыть ярлык (Show/Hide), затем выбираете статус читателя вашего сайта (зарегистрирован или нет, редактор, подписчик и т.д.).

После выбора состояния не забудьте сохранить меню.

Вариант второй. Добавляем код PHP

В плагине, о котором я рассказал выше, не так много вариантов условий, с помощью которых можно управлять выводом ярлыков меню. В Кодексе WordPress их гораздо больше — http://codex.wordpress.org/Conditional_Tags. Советую почитать.

Вы можете применить любой из вариантов условий.

Например: вы хотите Показать или Скрыть пункт меню пользовательского типа записи на страницах.

Для этого необходимо добавить такой вариант кода PHP в файл 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) {          // возвращаем значения TRUE или FALSE
      return is_post_type_archive();
    }
  );
 
  return $conditions;
}

Заключение

Не забывайте, что правка файла functions.php в активной теме прямо во время работы сайта может привести к сбою в работе сайта. Вы можете допустить нелепую ошибку (потерять фигурную скобку в коде) и сайт захлопнется, открывшись белым экраном!

Никогда не экспериментируйте на рабочем сайте. Создайте его клон на поддомене и там играйтесь с кодом. Или сделайте копию сайта на компьютере, на localhost.

Важно! Эта запись может содержать ссылки на плагины, которые к моменту вашего чтения и скачивания могут работать не корректно. Будьте внимательны.

Добавить комментарий

Ваш email нигде не будет показан. Обязательные поля помечены *