PHP将兄弟页面显示为设置图像

时间:2014-11-05 10:21:14

标签: php html css wordpress

我正在尝试自定义以下代码,以便显示当前页面的所有兄弟页面,但不是将它们作为标题输出,而是将它们作为项目符号输出(样式化的项目符号为“images / bulletpoint.gif”) )。我有以下代码将它们显示为名称,但似乎无法自定义它们以显示为图像。有任何想法吗?

非常感谢

<ul class="subnav_right">
<?php
global $post;
$current_page_parent = ( $post->post_parent ? $post->post_parent : $post->ID );

wp_list_pages( array(
     'title_li' => '',
     'child_of' => $current_page_parent,
     'depth' => '1' )
);
?>
</ul>

1 个答案:

答案 0 :(得分:1)

您可以使用walker进行自定义。我已经使用walker完成了它。检查以下代码:

沃克班:

class Custom_Walker extends Walker_Page {

    function start_el( &$output, $page, $depth, $args, $current_page = 0 ) {
        if ( $depth )
            $indent = str_repeat("\t", $depth);
        else
            $indent = '';
            extract($args, EXTR_SKIP);
            $css_class = array('page_item', 'page-item-'.$page->ID);
        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';
        }

        $css_class = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
        $icon_class = get_post_meta($page->ID, 'icon_class', true); //Retrieve stored icon class from post meta

        $output .= $indent . '<li class="' . $css_class . '">';
            $output .= '<a href="' . get_permalink($page->ID) . '">' . $link_before;

                if($icon_class){ //Test if $icon_class exists
                    $output .= '<span class="' . $icon_class . '"></span>'; //If it exists output a span with the $icon_class attached to it
                }


            if($depth!=0){
                $output .= apply_filters( 'the_title', '', $page->ID );
            }else {
                 $output .= apply_filters( 'the_title', $page->post_title, $page->ID );
            }
            $output .= $link_after . '</a>';

        if ( !empty($show_date) ) {
            if ( 'modified' == $show_date )
                $time = $page->post_modified;
                else
                $time = $page->post_date;
                $output .= " " . mysql2date($date_format, $time);
        }
    }
}

在argumnent中传递助行器,如:

wp_list_pages( array( 'title_li' => '',
     'child_of' => $current_page_parent,
     'depth' => '1',
      'walker' => new Custom_Walker())
);