Регистрируем произвольное меню в шаблоне WordPress
Начиная с версии 3.0 в WordPress появилась такая замечательная функция, как произвольное меню, а произвольным оно называется потому, что в нем можно создавать меню произвольной структуры и в качестве пунктов меню можно использовать рубрики, страницы или произвольные ссылки. О том, как создавать такое меню и размещать его у себя на сайте, я расскажу в одном из ближайших постов, а пока поделюсь возможными трудностями, с которыми можно столкнуться при попытке воспользоваться нововведением.
Появление произвольного меню вызвало бурю положительных эмоций у пользователей WordPress, в том числе и у меня. Я, как и все, поспешил обновить свою устаревшую версию, дабы воспользоваться всеми прелестями этой замечательной функции, однако после обновления я не увидел каких-либо внешних изменений в панели администрирования, связанных с появлением произвольного меню. Проклянув разработчиков и решив, что опять, видимо, все придется писать в коде самому, я решил поискать в сети какие-нибудь отзывы относительно функционирования или наоборот, нефункционирования произвольного меню.
Как я и ожидал, больше всего были разочарованы люди, которые вели свои блоги достаточно долгое время и, наоборот, люди, только недавно ставшие на путь блогосферы и потому использовавшие у себя последнюю версию WordPress, не высказали никаких нареканий. Копнув глубже я выяснил, что шаблоны, которые были сделаны до выхода в свет WordPress версии 3.0, попросту не поддерживают функцию произвольного меню. Другими словами, WordPress не получает никакой информации от шаблона о поддержке такой функции.
Но страшного тут ничего нет и выход есть из этой ситуации, для этого нужно просто зарегистрировать функцию поддержки произвольного меню в файле functions.phpсвоего шаблона. В результате такой регистрации в панели администрирования в разделе, отвечающем за внешний вид сайта появится новый пункт “Меню”. Открываем файл в любом редакторе кода и добавляем в него функцию, позволяющую “увидеть” WordPress готовность шаблона размещать у себя произвольное меню.
if (function_exists('add_theme_support')) { add_theme_support('menus'); }
или
register_nav_menus( array( 'primary' => __('Primary Navigation'), ) );
Как видите, несколько строк кода дали возможность сберечь нам свой “устаревший” шаблон и получить новую функцию.