WordPress Page Walker类父类的后代,包含缩略图和自定义类

时间:2015-03-16 23:30:39

标签: wordpress navigation

请帮忙!

我在我的智慧结束,明天必须完成这个,所以我会真的感谢任何有关调整此页面步行者课程的帮助。 (请!)

最终目标是以这种格式显示列表:

Animals //not shown
  + Cats
  - Dogs
      - Bulldogs
      - Boxers
      - Poodles
  + Horses
  + Sheep

深度要求

在猫,狗,马,羊页,(动物)以及斗牛犬,拳击手,贵宾犬不应该展示。

但是,在Dogs页面上,除了Cats,Horses and Sheep页面之外,还应该显示Bulldogs,Boxers,Poodles。

加价要求

我在最终输出中需要以下标记:

<ul class="list">
    <li class="list__items"><a href="#link">Cats</li>
    <li class="list__items"><a href="#link">Dogs</a>
        <ul class="sub-tier__list">
             <li class="sub-tier__group"><a href="#link">Bulldogs</a></li>
             <li class="sub-tier__group"><a href="#link">Boxers</a></li>
             <li class="sub-tier__group"><a href="#link">Poodles</a></li>
        </ul>
    </li>
</ul>

在sub-tier__group内还有其他div,标题等,但我想保持干净以便于演示。


我目前的Page Walker课程:

class Page_List_With_Thumbnail extends Walker_Page {
    function start_lvl(&$output, $depth) {
        $indent = str_repeat("\t", $depth);
        $output .= "\n$indent<ul>\n";
    }
    function start_el(&$output, $page, $depth, $args, $current_page) {
        if ( $depth )
            $indent = str_repeat("\t", $depth);
        else
            $indent = '';
        extract($args, EXTR_SKIP);
        $class_attr = '';
        if ( !empty($current_page) ) {
            $_current_page = get_page( $current_page );
            if ( (isset($_current_page->ancestors) && in_array($page->ID, (array) $_current_page->ancestors)) || ( $page->ID == $current_page ) || ( $_current_page && $page->ID == $_current_page->post_parent ) ) {
                $class_attr = 'sel';
            }
        } elseif ( (is_single() || is_archive()) && ($page->ID == get_option('page_for_posts')) ) {
            $class_attr = 'sel';
        }
        if ( $class_attr != '' ) {
            $class_attr = ' class="' . $class_attr . '"';
            $link_before .= '<strong>';
            $link_after = '</strong>' . $link_after;
        }

        // Thumbnail

        $page_thumbnail = get_the_post_thumbnail( $page->ID );

        $output .= $indent . '<li' . $class_attr . '><a href="' . get_page_link($page->ID) . '"' . $class_attr . '">' . $page_thumbnail  . $link_before . apply_filters( 'the_title', $page->post_title, $page->ID ) . $link_after . '</a>';


    }
}

我当前的模板标记:

<?php
    $walker = new Page_List_With_Thumbnail();

    if($post->post_parent)
        $children = wp_list_pages( array (
            'title_li' => '',
            'child_of' => $post->post_parent,
            'echo' => '0',
            'depth' => '0',
            'walker' => $walker

            ) );
    else
        $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
    if ($children) { ?>
    <ul>
        <?php echo $children; ?>
    </ul>
 <?php } ?>

奖励:缩略图输出

目前,有一个get_the_post_thumbnail( $page->ID );是好的衡量标准,但是如果我可以吐出alt,标题属性作为单独的标题会对这个噩梦蛋糕锦上添花。


我已经尽力将这里的东西拼凑在一起(以及400万其他谷歌搜索)所以我希望这对你来说很容易找到漂亮的WP忍者。

非常感谢你!

0 个答案:

没有答案