Как мне загрузить другое подменю в шаблоне (подменю зависит от страницы)? - PullRequest
0 голосов
/ 23 июля 2011

Итак, это основной шаблон страницы кода:

<?php

/*
 *  Template name: About Content Template
 */
?>
<?php get_header(); the_post(); ?>

<div id="container">
        <div id="main-content" class="dropShadow roundEdge">
            <?php wp_nav_menu( array('menu' => 'About Submenu', 'menu_id'  => 'submenu',  'container' => 'false' )); ?>
             <?php the_content(); ?>
        </div>
        <?php get_sidebar();?>
</div>
<?php get_footer();?>

Для простоты, скажем, единственное, что меняется, - это имя меню, в зависимости от группы страниц. Группы страниц, например, About и Products. Первое, что приходит на ум, - это добавить настраиваемое поле на каждую страницу, принадлежащую группе, и установить свойство "category=About" или "category=Products". В functions.php у меня будет массив имен категорий, сопоставленных с именем меню, например "About = About Menu", поэтому перед загрузкой меню я получаю пользовательское свойство, считываю значение имени меню из массива и устанавливаю его в качестве аргумента функции wp_nav_menu. Есть ли более элегантный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 24 июля 2011

Решение, которое я нашел, относительно простое.Первую страницу в подменю (например, «Журнал», когда вы нажимаете «О программе») можно просмотреть в качестве главной страницы категории, поэтому я взял все остальные страницы, связанные в подменю, и поместил первую страницу («История») в качестве родительской.Затем я создал подменю через панель управления и назвал его подменю «История».Код, который делает эту работу, прост:

<?php $submenuName = get_the_title($post->post_parent);
        $submenuName = $submenuName . " Submenu";
        wp_nav_menu( array('menu' => $submenuName, 'menu_id'  => 'submenu',  'container' => 'false' ));

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

0 голосов
/ 23 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...