Поддержка пользовательских меню в старых темах wordpress

Когда я захотел изменить меню своего блога, мне пришлось столкнуться с проблемой. Дело в том, что моя тема оказалась старой и не поддерживала новые пользовательские меню wordpress, которые появились в третьей ветке движка.

Я решил исправить эту проблему, так как сама тема мне нравится и менять её я пока не намерен.

Итак, если ваша тема не поддерживает меню, то пройдя в консоли управления блогом во вкладку внешний вид – меню Вы увидите надпись на подобии такой: «Текущая тема не поддерживает создание меню, однако вы можете использовать виджет «Произвольное меню», чтобы добавить любое из созданных здесь меню в боковую колонку темы.»

Для меня это не выход, потому что мне нужно менять именно главное меню, расположенное в шапке или в футере блога.

Погуглив немного я нашел решение своей проблемы, так что приступим…

Чтобы добавить меню в старый шаблон вордпресс нам нужно сделать следующее.

1. Открываем файл functions.php нашей темы блога, его можно найти в меню панели управления внешний вид – редактор, и вставляем внизу этого файла следующий код

 

register_nav_menus(
array(
'primary'=>__('Первое меню'),
'secondary'=>__('Второе меню'),
)
);

Заметьте, что таким образом мы добавили два пользовательских меню в наш шаблон блога, primary и secondary, если Вам два меню не нужно – просто удалите строчку secondary’=>__(‘Второе меню’),

Ещё один момент, код нужно вставлять в файл functions.php между тегами <?php и ? >, иначе у нас ничего не получится.

2. Теперь, если мы перейдем в панели управления во внешний вид – меню, то увидим приблизительно следующую картину.

clip_image002[6]

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

clip_image003

Но перед этим нужно будет прописать стили для вывода этих вложенных пунктов.

3. Ну и последний штрих, нужно прописать вывод нашего пользовательского меню в шаблоне темы блога.

Обычно меню располагается в файле header.php, тут мы и поищем его вывод. Позже не забудьте продублировать меню в нижней части блога, для удобства Ваших посетителей, для этого нужно прописать код вывода меню в шаблоне footer.php.

Я немного поискал в своем шаблоне вывод меню, и вот, как он выглядел:

clip_image004

Код обведённый прямоугольником нужно заменить на новый.

Вот как выглядит новый код для вставки

< ?php wp_nav_menu( array( 'theme_location' => 'primary','fallback_cb'=> '' ) ); ?>

Где primary, это наше первое пользовательское меню, как Вы помните.

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

clip_image005

Так что не забудьте подписаться на обновления блога.

Удачного Вам дня и до связи.

23 комментария к “Поддержка пользовательских меню в старых темах wordpress”

  1. Здравствуйте,спасибо за подробный мануал. Немного не понял вот этот пункт: Но перед этим нужно будет прописать стили для вывода этих вложенных пунктов.
    Вы не могли бы объяснить поподробнее. Заранее спасибо!

    Ответить
    • Имеются в виду каскадные таблицы стилей, тут вкратце не расскажешь, откройте исходный код страницы с таким меню и все увидите…

      Ответить
  2. Добрый день!Подскажите,сделала как вы написали,у меня получился маленький шрифт,как его можно увеличить?

    Ответить
    • Натали, проверьте стили меню, если до того шрифт был нормальный то вы просто неверно их прописали, ну или нужно править верстку и CSS

      Ответить
  3. Алексей, спасибо, все прекрасно работает, но не выводится второе меню. Я так понимаю, что нужно куда-то добавить про secondary: ‘primary’,’fallback_cb’=> » ) ); ?> Но куда?… Знаний моих катастрофическине хватает.

    Ответить
    • Мария, маловато информации, чтобы помочь Вам, что прекрасно работает? какое второе меню, в каком шаблоне?
      Если шаблон не поддерживает новые меню то актуальнее конечно его сменить, он морально устарел. Может есть обновленная версия Вашего шаблона, проверьте…

      Ответить
  4. Алексей, спасибо за статью, очень помогли! У меня на сайте используется старая тема, которая не поддерживает пользовательское меню, плюс долго не могла понять, как можно избавиться от лишнего пункта в стандартном меню. Вследствие изменений в структуре сайта в меню появилось два пункта Главная,ссылающихся на одну и ту же страницу, как можно через админ-панель удалить лишний пункт я не нашла . Сделала меню по описанному Вами способу, добавив в него все страницы, кроме главной и все получилось так, как мне хотелось!
    Единственное, что пришлось поискать — как увеличить размер шрифта в меню, т.к. новые опции выводились мелким шрифтом. Но это оказалось несложным: в файле style.css нашла строку #menu ul ul li { font-size: 1em;} вместо 1 указала нужный размер шрифта. Спасибо еще раз!

    Ответить
  5. Здравствуйте, Алексей,
    спасибо инструкцию, но у меня возникла проблема с выводом меню в навигацию. На месте где оно должно было быть появляется сам код вставки.
    Вот, что у меня сейчас стоит (тема Evidence как на вашем примере)

    Меняю на ваш код, но меню нет.
    Посоветуйте, что делать в этой ситуации.

    Ответить
    • Я не совсем понял Вас…
      Если появляется пхп код в шаблоне то он скорее всего просто неверно обрабатывается, неверно вставлен…

      Ответить
      • Алексей,Вы пишите «НУ И ПОСЛЕДНИЙ ШТРИХ, НУЖНО ПРОПИСАТЬ ВЫВОД НАШЕГО ПОЛЬЗОВАТЕЛЬСКОГО МЕНЮ В ШАБЛОНЕ ТЕМЫ БЛОГА.» В Hedere найти код вывода меню и заменить его. Я сделала это, но вместо меню у меня в навигации появляется сам код: …

        Ответить
        • Неверно вставлен как я уже сказал — скорее всего,
          покажите пациента…
          Радикальный метод решения — смена шаблона…

  6. я перепробовала кучу методов, но у всех проблема. У меня шаблон DW Minion, в хедере ничего удалять не пришлось, там вообще отсутствовала какая либо запись с меткой меню. Поставила этот код, и в результате вверху отображается только одно меню. Хотя я сделала 3(прописала в коде, сделала в настройках), но он не показывает!
    Что делать?

    Ответить
    • Видимо где-то ошиблись, лучше сразу искать шаблон который Вас устраивает и не зацикливаться на этом, ковыряться в коде неблагодарное дело если Вы не профи, вид шаблона мало влияет на успешность блога

      Ответить
  7. Алексей, у меня все работает КРОМЕ подстраниц. Делаю подстраницу, но она не в какую не выпадает, а отображается вместе со всеми. Что может быть?

    Ответить
  8. спасибо вам большое за этот пост, благодаря вам, я навел порядок в своем блоге. спасибо большое.

    Ответить

Оставьте комментарий