1

ページで使用されているすべての画像を取得したい。これは私が使用しているコードです:

function get_page_images($id) {
    $photos = get_children( array(
        'post_parent' => $id,
        'post_status' => 'inherit',
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'order' => 'ASC',
        'orderby' => 'menu_order ID') );

    $results = array();

    if ($photos) {
        foreach ($photos as $photo) {
            // get the correct image html for the selected size
            $results[] = wp_get_attachment_image($photo->ID, $size);
        }
    }

    return $results;
}

これは、このページ専用にアップロードされた画像のみを取得します。以前に別のページ/投稿にアップロードされた画像を再利用した場合、それらは取得されません (アップロード先の投稿に添付されているため、投稿は取得されません)で再利用されます)。ページ/投稿で使用されているすべての画像を取得する方法を知っている人はいますか?

4

2 に答える 2

5

組み込みの PHP Dom パーサーを使用して、コンテンツ内にあるすべての画像を取得します。このコードはテストされていませんが、正しい方向で開始できるはずです。

<?php
while(have_posts()) : the_post();
    $dom = new DOMDocument();
    $dom->loadHTML(get_the_content());
    $images = $dom->getElementsByTagName('img');
    foreach($images as $img){
        $src = $img->getAttribute('src');
        printf('<img src="%s" />', $src);
    }
endwhile;
?>
于 2013-07-31T12:54:23.500 に答える
1

投稿から画像を取得するには、次の関数が役立つと思います

function get_images_from_post( $id ) {
   $get_custom_post = get_post($id); 
   $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $get_custom_post->post_content, $matches);
   return $matches;
}
于 2013-07-31T12:49:20.953 に答える