Рассмотрим есть ли в движке Bludit функция, которая позволяет выбирать страницы для отображения в главной навигации. Разберемся как сделать так, чтобы убрать пункт меню, если он нам не нужен в главном меню.
По умолчанию в Bludit нет опции, которая позволяет сделать нам такое действие.
Лучшим решением для этой функции является использование пользовательских полей (custom fields) и изменение php-файла темы, которую вы используете.
Сначала переходим в [Settings] — [General] — [Custom fields]. В русской версии: [Настройки] — [Общие] — [Пользовательские поля].
Здесь мы удаляем квадратные скобки, если у вас только они в текстовом поле и добавляем следующее:
{
"ShowMenu": {
"type": "bool",
"label": "Show in Menu",
"tip": "Don't show page in menu."
}
}
Это приведет к тому, что при добавлении страницы в «Опциях» появится новый чекбокс во вкладке [Custom].
Далее нам нужно отредактировать файл navbar.php вашей темы. Адрес будет примерно следующий:
bl-themes/[ваша_тема]/php/navbar.php
Не забудьте, что [ваша_тема]
— это название папки с используемой темой Bludit.
В этом файле находим такие строчки кода:
<!-- Static pages -->
<?php foreach ($staticContent as $staticPage): ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo $staticPage->permalink(); ?>"><?php echo $staticPage->title(); ?></a>
</li>
<?php endforeach ?>
И меняем всё это на следующее:
<!-- Static pages -->
<?php foreach ($staticContent as $staticPage):
if ( !$staticPage->custom('ShowMenu')) { ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo $staticPage->permalink() ?>"><?php echo $staticPage->title() ?></a>
</li>
<?php } endforeach ?>
Здесь мы добавили условие ЕСЛИ (if
) для пунктов меню у которых будет отмечено «Don’t show page in menu», чтобы они не отображались.
Теперь, если вы отметите чекбокс «Don’t show page in menu» у какой-либо страницы, эта страница не будет отображаться в меню Bludit.