我想获取页面中使用的所有图像。这是我正在使用的代码:
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;
}
这只会获取专门为此页面上传的图片,如果我重新使用之前已上传过的图片用于其他页面/帖子,则不会检索这些图片(因为它们已附加到上传到的帖子中,但是不是任何他们被重用的帖子)。有没有人知道如何获得所有页面/帖子中使用的图片?
答案 0 :(得分:5)
使用内置的PHP Dom Parser获取内容中的所有图像。此代码未经测试,但应该让您从正确的方向开始:
<?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;
?>
答案 1 :(得分:0)
我认为以下功能对于从帖子
获取图片非常有用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;
}