2009-10-14 2 views
0

не уверен, что это достаточно для программирования или если он должен перейти к суперпользователю, который не программирует ВСЕ. Я оставляю его моде, чтобы решить.Wordpress: теги шаблона get_page()

Я создал меню, используя get_pages() и указав родительский идентификатор. Этот родительский идентификатор имеет дочерние и дочерние элементы и под-дочерние элементы. Мне нужно, чтобы каждый из этих (дочерних) дочерних элементов отображал родительский идентификатор, поскольку это меню находится в файле header.php. Поэтому он будет включен для всех страниц независимо от их родословной, и я хотел бы, чтобы их основной раздел секции получил определенный класс «currentActive».

код я сделал ONY работы для детей, а не для суб/суб-суб детей

<li id="infographieButton" <?php echo ($post->ID == 5 || $post->post_parent == 5)? 'class="currentlyActive"': ''; ?>> 
           <a href="<?php bloginfo('url') ?>/infographie/" class="menuHeader"><span>Infographie</span></a> 
           <ul id="dropdownmenuInfographie" class="submenu"> 
            <?php 
            $pages = get_pages('child_of=5&parent=5&sort_column=menu_order&sort_order=asc&title_li='); 
            foreach($pages as $page) { 
             ?> 
            <li <?php echo ($post->ID == $page->ID)? 'class="current_page_item"': ''; ?>><a href="<?php echo get_page_link($page->ID) ?>"><?php 
               echo $page->post_title; 
               ?></a></li> 

            <?php 
            } 
            ?> 
           </ul> 
          </li> 

Я немного озадачен о том, как добиться того, чтобы в wordrpress. Любое предложение приветствуется!

ответ

1
+0

Является ли публикация на разных сайтах проблемой? Я думаю, что это имеет смысл. В любом случае, ваше предложение превосходно, никогда не было обнаружено, что функция раньше. С тех пор я зашел за него и нашел кого-то с той же проблемой: http://photogabble.co.uk/2009/04/17/wordpress-get_post_ancestors/ Спасибо, Майкл! – pixeline

0

Вот что документация Wordpress говорит (курсив мой):

child_of

Отображение подстраниц только одной страницы; использует идентификатор для страницы в качестве значения. По умолчанию 0 (отображает все страницы). Обратите внимание, что параметр child_of также будет получать «внуков» данного идентификатора, а не только прямых потомков.

родитель

Отображает те страницы, которые имеют этот идентификатор в качестве родителя. По умолчанию -1 (отображает все страницы независимо от родителя). Обратите внимание, что это можно использовать для ограничения «глубины» параметра child_of, поэтому можно получить только одно поколение потомков. Вы должны использовать это в сочетании с параметром child_of. Подайте ему тот же идентификатор.

Учитывая, что все, что вам нужно сделать, это удалить аргумент parent. Предполагая, что вы хотите, это плоский список потомков, а не иерархический. Чтобы отобразить родительский идентификатор любой страницы в вашем списке, я считаю, что вам просто нужно получить доступ к определенному свойству этого объекта страницы (вероятно, названо что-то вроде parent_id).

+0

да, но мне нужно parent_id родителя, и parent_id в parent_id родителя. Видите, в чем я? – pixeline

+0

В таком случае я не понимаю, что вам нужно. Ваш текущий код не отображает необходимость в родительских идентификаторах. Было бы полезно, если бы вы могли показать пример типа массива PHP, который вы хотите вернуть. – Jakob

+0

Я понимаю, что код, который я написал, был недостаточным, чтобы понять мою проблему. Я только что перефразировал и опубликовал более полный код. Спасибо, что повесили. – pixeline