WordPress获取文章子元素函数:get_children

WordPress函数get_children可用于获取文章下的附件、子页面,通常我用来获取文章缩略图。

1
get_children( array $args = '', constant $output = OBJECT )

函数参数

$args

数组或字符串值

get_children()函数$args参数默认的值如下:

1
2
3
4
5
6
$defaults = array(
    'numberposts' => -1,
    'post_type' => 'any',
    'post_status' => 'any',
    'post_parent' => 0,
);

get_children()函数$args参数可用的值如下:

numberposts

整数型,默认值:-1

指定返回信息的数量,默认不限制

post_parent

整数型,默认值:0

父元素的ID,指定一个文章ID,将返回该文章下的子元素

post_type

字符串值,默认值:any

指定文章类型,例如:attachment、page、revision,默认所有类型

post_status

字符串值,默认值:any

文章状态,例如:publish、draft、inherit

post_mime_type

字符串值,默认为空

指定文件的MIME类型,例如:image、video、video/mp4,在返回指定格式的附件时特别有用

函数返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Array (
    [240] => WP_Post Object (
    [ID] => 240
    [post_author] => 1
    [post_date] => 2014-07-25 09:27:19
    [post_date_gmt] => 2014-07-25 01:27:19
    [post_content] =>
    [post_title] => baiduseo
    [post_excerpt] =>
    [post_status] => inherit
    [comment_status] => open
    [ping_status] => closed
    [post_password] =>
    [post_name] => baiduseo
    [to_ping] =>
    [pinged] =>
    [post_modified] => 2014-07-25 09:27:19
    [post_modified_gmt] => 2014-07-25 01:27:19
    [post_content_filtered] =>
    [post_parent] => 239
    [guid] => http://localhost/wp-content/uploads/2014/07/baiduseo.jpg
    [menu_order] => 0
    [post_type] => attachment
    [post_mime_type] => image/jpeg
    [comment_count] => 0
    [filter] => raw )
)

函数使用示例

返回ID为239的文章下的所有图片:

1
$images = get_children( 'post_parent=239&post_type=attachment&post_mime_type=image' );

获取文章第一张图片的缩略图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function echo_first_image( $postID ) {
    $args = array(
        'numberposts' => 1,
        'order' => 'ASC',
        'post_mime_type' => 'image',
        'post_parent' => $postID,
        'post_status' => null,
        'post_type' => 'attachment',
    );
    $attachments = get_children( $args );
    if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
            echo '<img src="' . wp_get_attachment_thumb_url( $attachment->ID ) . '" class="current">';
        }
    }
}
?>

扩展阅读

get_children()函数位于:wp-includes/post.php

相关函数:

  • wp_get_attachment_link()
  • get_page_children()
原文链接:https://xiaohost.com/2340.html,转载请注明出处。
0