2013-10-09 3 views
1

Впервые я использовал переполнение стека, пожалуйста, простите меня, если я сделаю faux pas.Создание специальных меню в WordPress

Я новичок в php, и в настоящее время я создаю свою первую тему WordPress. Я хочу иметь несколько отдельных разделов веб-сайта с меню боковой панели, в котором отображаются ссылки только на другие страницы в разделе, в котором вы находитесь. Например, если вы просматриваете сообщение 1 раздела A, в боковом меню будут отображаться ссылки на сообщения 2, 3 и 4 раздела A. Меню будет одинаковым во всех сообщениях раздела A. Раздел B будет иметь другое меню, отображающее его сообщения. На сайт потребуется около 25-30 различных разделов.

Я надеялся сделать это с помощью категорий, но, безусловно, открыт для других вариантов. Я попытался сделать это несколькими разными способами без успеха. Я чувствую, что это должно быть просто, и я просто пропускаю что-то основное.

Я думаю, что моя проблема вызова информации, необходимой я начал как:

<?php if (is_category('tanzania')) : ?> 

    <?php wp_nav_menu(array(
    'theme_location' => 'tanzania-menu' 
    )) ?> 

<?php elseif (is_category('safrica')) : ?> 

    <?php wp_nav_menu(array(
    'theme_location' => 'safrica-menu' 
    )) 

<?php else : print('Nope.'); ?> 

<?php endif; ?> 

Это не работает вообще (что-то я уверен, это супер очевидно для всех вас). Он отображает каждое меню правильно, но только на странице обзора категории. Как только вы нажмете на ссылку в меню, вы перейдете к перма-url сообщения, и меню исчезнет. Я понял, что это потому, что in_category видит только страницы в каталоге/category /, но я не знаю, как это исправить.

Другая проблема заключается в том, что мой sidebar.php будет таким длинным. Используя вышеупомянутый метод, я в основном имел огромный переключатель ~ 80 строк длиной. Я не уверен, что это плохо, но кажется ... неразумным. Каждый раз, когда я пытался уменьшить его, я закончил тем, что он не работал вообще.

Благодарим вас за помощь в этом, WP был довольно кривой обучения.

+0

Добро пожаловать в SO! Можете ли вы показать часть кода PHP, с которым вы сейчас работаете? Кроме того, это поможет определить, почему он не работает по вашему желанию. Таким образом, люди могут предлагать способы изменить или улучшить свой код, а не создавать сами с нуля. –

+0

Спасибо, Мэтью! Я сразу же начну редактирование! – user2859308

+0

Добро пожаловать в SO! Да, это вполне возможно - и может быть сделано динамически с гораздо меньшими, чем 80 строк, которые у вас есть сейчас :) Если бы вы могли ответить на несколько вопросов, мы сможем вам помочь. Можете ли вы подтвердить, что вы хотите меню на боковой панели каждого сообщения, но меню должно показывать только ссылки на другие сообщения в той же категории (но не на том, что вы просматриваете в данный момент)? Для этого вам нужно немного обновить цикл для вашего 'single.php' и еще один цикл в' sidebar.php', который будет проходить только по текущей категории (но не включает просматриваемую в данный момент запись в списке). –

ответ

0

Это не работает так, как вы хотите, потому что, как только вы покинете страницу категории, правила больше не применяются.

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

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

+0

Спасибо за ваш ответ!Это не главное меню навигации, просто боковое меню, чтобы упростить просмотр связанных страниц. Я достаточно уверен, что основная структура сайта не будет подавляющей. Я надеюсь найти способ заполнить меню, чтобы пользователи не нуждались в огромных выпадающих меню из основной навигации. – user2859308

+0

Другой способ сделать это - идентифицировать каждую страницу, на которой вы хотите создать определенное меню: 'is_page (array (tanzania, 'safrica', 'zambia'));' http: //codex.wordpress. орг/Function_Reference/is_page – fisicx

Смежные вопросы