2015-04-02 65 views

回答

0
+0

这超出了我,当然这只是一个标准的复制和粘贴代码? – 2015-04-02 12:45:21

+0

我想要的是一个包含当前页面标识的子标准的菜单......如果孩子有孩子,那么它会生成一个下拉菜单。 – 2015-04-02 12:46:26

+0

我会为你写点东西,你只需要给我一点时间:) – Jonelle 2015-04-02 13:05:50

1

感谢补充说 - 这给了它一些背景。

你要添加以下代码:

<nav class="navbar navbar-default"> 
<div class="container-fluid"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
    </div> 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
     <ul class="nav navbar-nav"> 
      <?php //this will be where you add your statement if we're on a parent/child page 
      wp_list_pages(array(
       'title_li' => '', 
       'child_of' => $post->ID, 
       'walker' => new BS_Page_Walker(), 
      )); 
      ?> 
     </ul> 
    </div> 
</div> 

然后你会想这沃克添加到您的功能文件 - 或某处你的主题。

class BS_Page_Walker extends Walker_Page { 
    public function start_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     $output .= "\n$indent<ul class='dropdown-menu' role='menu'>\n"; 
    } 

    public function start_el(&$output, $page, $depth = 0, $args = array(), $current_page = 0) { 
     if ($depth) { 
      $indent = str_repeat("\t", $depth); 
     } else { 
      $indent = ''; 
     } 

     $css_class = array('page_item', 'page-item-' . $page->ID); 

     if (isset($args['pages_with_children'][ $page->ID ])) { 
      $css_class[] = 'page_item_has_children'; 
     } 

     if (! empty($current_page)) { 
      $_current_page = get_post($current_page); 
      if (in_array($page->ID, $_current_page->ancestors)) { 
       $css_class[] = 'current_page_ancestor'; 
      } 
      if ($page->ID == $current_page) { 
       $css_class[] = 'current_page_item'; 
      } elseif ($_current_page && $page->ID == $_current_page->post_parent) { 
       $css_class[] = 'current_page_parent'; 
      } 
     } elseif ($page->ID == get_option('page_for_posts')) { 
      $css_class[] = 'current_page_parent'; 
     } 

     /** 
     * Filter the list of CSS classes to include with each page item in the list. 
     * 
     * @since 2.8.0 
     * 
     * @see wp_list_pages() 
     * 
     * @param array $css_class An array of CSS classes to be applied 
     *        to each list item. 
     * @param WP_Post $page   Page data object. 
     * @param int  $depth  Depth of page, used for padding. 
     * @param array $args   An array of arguments. 
     * @param int  $current_page ID of the current page. 
     */ 
     $css_classes = implode(' ', apply_filters('page_css_class', $css_class, $page, $depth, $args, $current_page)); 

     if ('' === $page->post_title) { 
      $page->post_title = sprintf(__('#%d (no title)'), $page->ID); 
     } 

     $args['link_before'] = empty($args['link_before']) ? '' : $args['link_before']; 
     $args['link_after'] = empty($args['link_after']) ? '' : $args['link_after']; 

     /** This filter is documented in wp-includes/post-template.php */ 
     if (isset($args['pages_with_children'][ $page->ID ])) { 
      $output .= $indent . sprintf(
        '<li class="%s"><a href="%s" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">%s%s%s <span class="caret"></span></a>', 
        $css_classes, 
        get_permalink($page->ID), 
        $args['link_before'], 
        apply_filters('the_title', $page->post_title, $page->ID), 
        $args['link_after'] 
       ); 
     } else { 
      $output .= $indent . sprintf(
        '<li class="%s"><a href="%s">%s%s%s</a>', 
        $css_classes, 
        get_permalink($page->ID), 
        $args['link_before'], 
        apply_filters('the_title', $page->post_title, $page->ID), 
        $args['link_after'] 
       ); 
     } 


     if (! empty($args['show_date'])) { 
      if ('modified' == $args['show_date']) { 
       $time = $page->post_modified; 
      } else { 
       $time = $page->post_date; 
      } 

      $date_format = empty($args['date_format']) ? '' : $args['date_format']; 
      $output .= ' ' . mysql2date($date_format, $time); 
     } 
    } 
} 
+0

那不输出任何东西? – 2015-04-02 14:43:02

+0

解析错误:语法错误,意外'?>',期望函数(T_FUNCTION)在/home/fiverive/public_html/wp-content/themes/5rivers/BS_Page_Walker.php在线91 – 2015-04-02 14:49:53

+0

它看起来像右括号没有包含在代码样式中 – Jonelle 2015-04-02 16:39:34

相关问题