Необходимо получить все <img> из the_content (); в WordPress?

Недавно я только что импортировал весь контент с сайта blogger в wordpress, и мне нужно немного поучаствовать.

Я работаю внутри single.php, и я хочу получить каждый <a><img src=""/></a> из the_content(); , Мой php немного лучше дрянной.

Я понимаю, что это дает мне первый образ сообщения, но мне нужно что-то подобное, которое дает мне все изображения (не признанные изображения) из the_content(); ,

 function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches[1][0]; if(empty($first_img)) { $first_img = "/path/to/default.png"; } return $first_img; } 

Взгляните на собственный объект DOMDocument PHP. http://www.php.net/manual/en/class.domdocument.php

Вы загрузите свой контент и загрузите его в DOMDocument через loadHTML() . THEN вы можете использовать getElementsByTagName() чтобы получить все изображения.

http://www.php.net/manual/en/domdocument.getelementsbytagname.php

 $document = new DOMDocument(); $document->loadHTML($post->post_content); $images = $document->getElementsByTagName('img'); 

Тривиальная задача для DOMDocument :

 $doc = new DOMDocument(); $doc->loadHTML($post->post_content); foreach ($doc->getElementsByTagName('img') as $img) $img->attributes['src'] = '/path/to/default.png'; // or whatever you want to do return $doc->saveHTML(); 

Вам нужно следить, но saveHTML() может добавить отсутствующие теги вокруг вашей структуры.