参数
- $args
-
(array|string)(可选) 用于检索页面的参数数组或字符串。
- 'child_of'
(int) 页面ID,以返回其子级和孙级页面。注意:$hierarchical
的值与$child_of
是否返回分层结果无关。默认值为0,或没有限制。 - 'sort_order'
(string) 如何对检索到的页面进行排序。接受'ASC','DESC'。默认值为'ASC'。 - 'sort_column'
(string) 页面排序依据的列,逗号分隔。接受'post_author'、'post_date'、'post_title'、'post_name'、'post_modified'、'menu_order'、'post_modified_gmt'、'post_parent'、'ID'、'rand'、'comment*count'。对于以'post*'开头的任何值都可以省略。默认值为'post_title'。 - 'hierarchical'
(bool) 是否按层次结构返回页面。如果false与$child_of
同时为false,则两个参数都将被忽略。默认情况下为true。 - 'exclude'
(int[]) 要排除的页面ID数组。 - 'include'
(int[]) 要包含的页面ID数组。不能与$child_of
、$parent
、$exclude
、$meta_key
、$meta_value
或$hierarchical
一起使用。 - 'meta_key'
(string) 仅包括具有此meta ke的页面。 - 'meta_value'
(string) 仅包括具有此meta value的页面。需要$meta_key
。 - 'authors'
(string) 作者ID的逗号分隔列表。 - 'parent'
(int) 要返回的直接子级的页面ID。默认值为-1,或者没有限制。 - 'exclude_tree'
(string|int[]) 要排除的页面ID的逗号分隔字符串或数组。 - 'number'
(int) 要返回的页面数量。默认值为0,或所有页面。 - 'offset'
(int) 返回之前要跳过的页面数量。需要$number
。默认值为0。 - 'post_type'
(string) 要查询的文章类型。默认值为'page'。 - 'post_status'
(string|array) 要包含的以逗号分隔的文章状态列表或数组。默认值为'publish'。
默认值: array()
- 'child_of'
返回
(WP_Post[]|int[]|false) 页面数组(或分层的文章类型项)。如果指定的post类型不具有层次结构,或者指定的状态不受post类型支持,则为布尔false。
源码
更新日志
版本 | 描述 |
---|---|
1.5.0 | 开始引入 |
使用示例
在下拉列表中显示页面
在此示例中是包含所有页面的下拉列表。请注意,您如何通过简单调用传递页面ID的函数get_page_link
来获取页面的链接。<select name="page-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> <option value=""> <?php echo esc_attr( __( 'Select page' ) ); ?></option> <?php $pages = get_pages(); foreach ( $pages as $page ) { $option = '<option value="' . get_page_link( $page->ID ) . '">'; $option .= $page->post_title; $option .= '</option>'; echo $option; } ?> </select>
以post格式显示当前页面的子页面
<?php $mypages = get_pages( array( 'child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc' ) ); foreach( $mypages as $page ) { $content = $page->post_content; if ( ! $content ) // Check for empty page continue; $content = apply_filters( 'the_content', $content ); ?> <h2><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h2> <div class="entry"><?php echo $content; ?></div> <?php } ?>
也许这会为其他人节省一些时间和挫折:
将
'any'
用作'post_status'
,无论是作为字符串还是数组,都不适用于get_pages
。事实上,它完全阻止get_pages
返回任何结果。