Если на вашем сайте используются многочисленные типы записей, и эти типы записей отображаются в меню WordPress, ваша панель администратора очень быстро может стать загроможденной и неудобной. В итоге, трудно найти в меню рубрики или метки, которые вам действительно нужны.
Конечно, вы можете изменить код произвольных типов записей, чтобы удалить их из меню, но есть и более простое решение. Вы можете использовать вкладку «Настройки экрана» (Screen Options), которая отображается на странице «Внешний вид — Меню» панели администратора.
На изображении выше показана панель настроек экрана для сайта, на котором используются плагины для электронной коммерции, календаря событий и форумов Q&A. Каждый из этих плагинов работает с пользовательским типом записей, который может быть добавлен в меню. Скорее всего, ваши плагины, зависящие от произвольных типов записей, включают в себя подобную функциональность.
Выпадающая панель с экранными настройками позволяет убирать элементы, которые не требуются для отображения в разделе меню панели администратора. В данном случае мы удалим два пункта (для событий и продуктов), которые нам не требуются для вывода в главном меню.
В итоге, на странице Меню панели администратора будут выведены только рубрики, метки, страницы, а также некоторые другие стандартные настройки; все это упростит задачу поиска нужных элементов при создании нового меню.
Клиент требует убирать из меню те страницы сайта (меню основано на страницах), для которых стоит статус «Черновик» или «На утверждении».
Можно ли каким нибудь способом, либо:
a) не формировать это меню в момент сборки, или же
б) присваивать такому пункту какой либо, скажем, класс, например class=»hiddenitem»
В данный момент меню формируется следующим образом:
$args = array(
‘theme_location’=>’equipment-menu’,
‘container’=>’div’,
‘container_class’=>’children_menu_top’,
‘container_id’=>’menu’,
‘menu_class’=>’sf-menu’,
‘menu_id’=>’children_menu’,
‘before’=>»,
‘after’=>»,
‘fallback_cb’=>false
);
wp_nav_menu($args);
Вообще, если использовать решения через статусы страниц, то в таком случае вам нужно обратить свое внимание на следующий фильтр: http://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class
Он позволяет присваивать классы для пунктов меню на базе какого-нибудь условия. Допустим, что вы хотите скрывать пункты меню на базе статуса страниц (пусть это будут черновики, т.е. статус draft). В таком случае вам понадобится следующий код:
Здесь в качестве класса мы присваиваем статус записи, т.е. соответствующие пункты меню (черновики) будут иметь класс draft. В дальнейшем их можно будет скрыть в CSS при помощи правила li.draft. Соответственно, если надо скрыть страницы «на утверждении», то можно воспользоваться статусом pending и применить стили к li.pending.
Спасибо огромное, меня это спасло. И помогло.
Надо будет в фильтрах разобраться однозначно.
Благодарствую, Дмитрий :-)
И жму руку!
Не за что, всегда готов помочь.