2011-05-18 97 views
0

我想在wordpress站点上的所有页面的页脚中显示孩子页面的地毯。如何在所有页面上显示一位家长的子页面wordpress

在我使用的页脚代码

  <?php 
     global $wp_query; 
     $post = $wp_query->post; 
     $ancestors = get_post_ancestors($post); 
     if(empty($post->post_parent)) { 
      $parent = $post->ID; 
     } else { 
      $parent = end($ancestors); 
     } 
     if(wp_list_pages("title_li=&child_of=$parent&echo=0")) { ?> 

     <ul class="footerNav clearfix"> 
      <?php wp_list_pages("title_li=&child_of=$parent&depth=1"); ?> 
     </ul><!-- #secondary-nav --> 

     <?php } ?> 

然而,这只能说明,当你在相关产品类别页脚中的子页面,我想看到的所有网页上这个导航。

感谢,

周六

这里是链接到一个页面页脚如何,我想它

http://satbulsara.com/luke-irwin/rugs/new-in/fishy/

回答

1

所有页面使用

$post = $wp_query->post; 
$ancestors = get_post_ancestors($post); 

变量$ post分配了访问者当前正在查看的帖子。

如果你想要所有页面上的地毯的所有孩子的菜单,你只需要你的代码的底部。此外,child_of参数不需要被通过可变分配,可以输入的地毯静态页面ID,即:

<ul class="footerNav clearfix"> 
    <?php wp_list_pages("title_li=&child_of=173&depth=1&sort_column=post_name"); ?> 
</ul><!-- #secondary-nav --> 

这三行将在生成菜单你就足够了。如果声明你周围有检查特定的父页面是否有孩子,只有生成一个无序列表,如果是的话。既然你知道它存在于这种情况下,我会放弃它并保存这两行。为了完整起见,我已经包含了sort_column参数 - 这将为您提供按字母顺序排列的所有地毯菜单。

如果声明仅适用于根据访问者当前所在页面而改变的动态菜单。如果你想要实现这样的菜单,我仍然会以不同的方式去思考,并且认为上述过程是臃肿的。只需插入

<?php $ancestors = get_post_ancestors($post); ?> 

到您的header.php文件将让你与

<?php if (is_page(173) || in_array(173,$ancestors)) { ?> 
    <ul class="subnav"> 
     <?php wp_list_pages('title_li=&child_of=173&depth=1'); ?> 
    </ul> 
<?php } ?> 

其他地方一样产生动态菜单上面所说的,为您的特定情况下,拳头代码块三班轮足够。

另外参考:WP Codex: wp_list_pages

+0

喜我改成了$祖先= $祖先= get_post_ancestors(175); – sat 2011-05-19 11:44:32

+0

仍然得到相同的东西 – sat 2011-05-19 11:45:39

+0

我做了一个累了的思维错误。我昨天给你的代码抓住了'_rugs_'的祖先 - 即你的主页(slug'_luke-irwin_')。然而,因为你已经想出了将其改变为175它会起作用,如果你删除了整个'$ wp-query'的东西和_if_语句,只留下'$ ancestors = get_post_ancestors(175);'和'$ parent = end($ ancestors);' 无论如何,我已经更新了我的答案。 – 2011-05-19 20:44:06

相关问题