Wordpress选择性页面层次结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wordpress选择性页面层次结构相关的知识,希望对你有一定的参考价值。
Originally from:http://wordpress.mfields.org/2010/selective-page-hierarchy-for-wp_list_pages/
funtions.php: /** * Create html list of pages. * * @package Razorback * @subpackage Walker * @author Michael Fields <[email protected]> * @copyright Copyright (c) 2010, Michael Fields * @license http://opensource.org/licenses/gpl-license.php GNU Public License * * @uses Walker_Page * * @since 2010-05-28 * @alter 2010-10-09 */ class Razorback_Walker_Page_Selective_Children extends Walker_Page { /** * Walk the Page Tree. * * @global stdClass WordPress post object. * @uses Walker_Page::$db_fields * @uses Walker_Page::display_element() * * @since 2010-05-28 * @alter 2010-10-09 */ function walk( $elements, $max_depth ) { global $post; $args = array_slice( func_get_args(), 2 ); $output = ''; /* invalid parameter */ if ( $max_depth < -1 ) { return $output; } /* Nothing to walk */ if ( empty( $elements ) ) { return $output; } /* Set up variables. */ $top_level_elements = array(); $children_elements = array(); $parent_field = $this->db_fields['parent']; $child_of = ( isset( $args[0]['child_of'] ) ) ? (int) $args[0]['child_of'] : 0; /* Loop elements */ foreach ( (array) $elements as $e ) { $parent_id = $e->$parent_field; if ( isset( $parent_id ) ) { /* Top level pages. */ if( $child_of === $parent_id ) { $top_level_elements[] = $e; } /* Only display children of the current hierarchy. */ else if ( ( isset( $post->ID ) && $parent_id == $post->ID ) || ( isset( $post->post_parent ) && $parent_id == $post->post_parent ) || ( isset( $post->ancestors ) && in_array( $parent_id, (array) $post->ancestors ) ) ) { $children_elements[ $e->$parent_field ][] = $e; } } } /* Define output. */ foreach ( $top_level_elements as $e ) { $this->display_element( $e, $children_elements, $max_depth, 0, $args, $output ); } return $output; } } Insert into template: /** * This will walk the navigation tree but exclude the top level pages. * handy for left-hand-nav links */ <?php $walker = new Razorback_Walker_Page_Selective_Children(); 'title_li' => '', 'sort_column' => 'menu_order', 'child_of' => $root_page_id, 'walker' => $walker, ) ); ?>
以上是关于Wordpress选择性页面层次结构的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress没有使用home.php而是使用index.php作为帖子页面。
Wordpress - 将代码片段包含到布局的选定部分的插件