当前浏览:首页 / WordPress函数 / get_pages()

get_pages( array|string $args = array() )

检索一个页面数组(或分层的文章类型项)

pagemore...


参数

$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()


返回

(WP_Post[]|int[]|false) 页面数组(或分层的文章类型项)。如果指定的post类型不具有层次结构,或者指定的状态不受post类型支持,则为布尔false。



源码

查看源码 官方文档


更新日志

版本描述
1.5.0开始引入

使用示例

  • 示例1

    在下拉列表中显示页面
    在此示例中是包含所有页面的下拉列表。请注意,您如何通过简单调用传递页面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>
    
  • 示例2

    以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
    	}	
    ?>
    
  • 示例3

    也许这会为其他人节省一些时间和挫折:

    'any'用作'post_status',无论是作为字符串还是数组,都不适用于get_pages。事实上,它完全阻止get_pages返回任何结果。