在wordpress中从页面获取图像

时间:2014-08-24 18:13:59

标签: php wordpress

我试图仅从Wordpress中的页面中抓取图像。

我读到有一个名为get_post_gallery()的函数,但它似乎无法获取我的图像。这就是我所做的:

if ( get_post_gallery() ) :
   $images = get_post_gallery(get_the_ID(), false);

   foreach($images as $image)
   {
      echo $image['src'];
   }
endif;

这行代码放在the loop内,据我所知:

if ( have_posts() ) {
   \\Bit of code in here
}

但是,它返回的数组似乎是空的(即使后页编辑器中有图像)。 你们建议用这种方式或其他方式只检索帖子/页面中的图片吗?

1 个答案:

答案 0 :(得分:1)

我在另一个SO question找到了你的答案。

这是:

function wpse_get_images() {
    global $post;
    $id = intval( $post->ID );
    $size = 'medium';
    $attachments = get_children( array(
            'post_parent' => $id,
            'post_status' => 'inherit',
            'post_type' => 'attachment',
            'post_mime_type' => 'image',
            'order' => 'ASC',
            'orderby' => 'menu_order'
        ) );
    if ( empty( $attachments ) )
                return '';

    $output = "\n";
/**
 * Loop through each attachment
 */
foreach ( $attachments as $id  => $attachment ) :

    $title = esc_html( $attachment->post_title, 1 );
    $img = wp_get_attachment_image_src( $id, $size );

    $output .= '<a class="selector thumb" href="' . esc_url( wp_get_attachment_url( $id ) ) . '" title="' . esc_attr( $title ) . '">';
    $output .= '<img class="aligncenter" src="' . esc_url( $img[0] ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" />';
    $output .= '</a>';

endforeach;

    return $output;
}