Как добавить логику условий в меню WordPress

Появилась необходимость отображать различные элементы меню навигации на разных страницах WordPress? А может быть выводить разные меню для залогиненных пользователей, или же скрывать меню на определенных страницах? Обычно вам бы понадобилось добавлять сниппеты кода или же использовать CSS для сокрытия элементов меню, но было бы замечательно, если бы всё это проделывать можно было из админки? В сегодняшней статье мы покажем вам как добавить логику условий в меню WordPress.

Первым делом вам необходимо установить и активировать плагин If Menu. Он работает «из коробки». Все, что вам нужно, это перейти в раздел Внешний вид » Меню и начать редактирование своих меню.

Начать следует с выбора элемента в меню навигации, после чего отметить галочку ‘Enable Conditional Logic’. Отобразится меню условий, которое выглядит примерно так:

conditional-menu[1]

Далее, выберите что нужно сделать, скрывать или отображать этот элемент, а затем задайте условие. Например, показывать ссылку на страницу выхода с сайта только когда пользователь залогинен.

После выбора условия, просто нажмите на кнопку сохранения изменений.

Добавляем свои собственные условия

If Menu — это новый плагин, и условий, которые можно задавать, не слишком много. WordPress предлагает горадздо больше тегов условий, которые вы можете использовать в своих проектах. Для полного списка ознакомьтесь с этой страницей (англ).

Вы можете добавить любое из этих условий для использования в плагине If Menu. Например, давайте предположим, что вам нужно отображать/скрывать элемент меню на страницах произвольного типа записей.

Для этого нужно добавить сниппет кода в файл functions.php вашей темы или в плагин для сайта WordPress вроде этого:

add_filter( 'if_menu_conditions', 'devise_new_menu_conditions' );

function devise_new_menu_conditions( $conditions ) {
  $conditions[] = array(
    'name'    =>  'If it is Custom Post Type archive', // название условия
    'condition' =>  function($item) {          // callback - должен вернуть TRUE или FALSE
      return is_post_type_archive();
    }
  );

  return $conditions;
}

Вот так это отобразится в меню логики условий:

custom-conditions[1]

Вот и все. Мы надеемся, что эта статья помогла вам добавить логику условий в меню WordPress. Также вам может быть интересна наша статья о том, как стилизировать меню в WordPress.

VN:F [1.9.22_1171]
Rating: 2.0/5 (8 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top