web-dev-qa-db-ja.com

画像からthe_content()を取り除いて別々に表示する

さて、私はこのコードを使って画像を削除したコンテンツを持っています:

$content = strip_tags(get_the_content(), '<p><a><h2><blockquote><code><ul><li><i><em><strong>');
$content = preg_replace("/\[caption.*\[\/caption\]/", '', $content);
$content = str_replace("[/caption]", '', $content);
echo $content;

最後に画像を見せたいのですが。私はこれを使用しようとしています:

$images = strip_tags(get_the_content(), '<img>');
echo $images;

しかし、うまくいきません。何か案は?

1
karllhughes

多分この正規表現を使ってください:

$pattern = "/<a(.*?)href=('|\")([^>]*)('|\")(.*?)><img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)class=('|\")([^>]*)('|\")(.*?)\/><\/a>/i";



function example_replace ($content) {
   global $post;

   $pattern = "/<a(.*?)href=('|\")([^>]*)('|\")(.*?)><img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)class=('|\")([^>]*)('|\")(.*?)\/><\/a>/i";
   $replacement = '<a$1href=$2$3$4$5><img$6src=$7$8.$9$10$11class=$12$13 <strong>imagelink</strong>$14$15$16/><\/a>';
   $content = preg_replace($pattern, $replacement, $content);

   return $content;
}
1
bueltge