leafというwordpressプラグインで制作しています。
phpのバージョンアップをしてから下記のコードの部分の表示がおかしくなりました。
<?php $postImage = getPostImage($post); if($postImage == null){ // 画像が無い場合の処理 }else{ echo '<img class="img-responsive" alt="'.$postImage["alt"].'" src="'.$postImage["url"].'" />'; } ?>
もともと記事ないの最初の画像が表示されるようになっていました。
1つめの記事は前と変わらず表示されますが、2つめ以降画像が表示されなかったり、別の関係のない画像が表示されます。
わかる方いましたらよろしくお願いします。
functions.phpの記述です。
//投稿の一枚目画像を取得する function getPostImage($mypost){ if(empty($mypost)){ return(null); } if(preg_match('<img([ ]+)([^>]*)src\=["|\']([^"|^\']+)["|\']([^>]*)>',$mypost->post_content,$img_array)){ // imgタグで直接画像にアクセスしているものがある $dummy=preg_match('<img([ ]+)([^>]*)alt\=["|\']([^"|^\']+)["|\']([^>]*)>',$mypost->post_content,$alt_array); $resultArray["url"] = $img_array[3]; $resultArray["alt"] = $alt_array[3]; }else{ // 直接imgタグにてアクセスされていない場合は紐づけられた画像を取得 $files = get_children(array('post_parent' => $mypost->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image')); if(is_array($files) && count($files) != 0){ $files=array_reverse($files); $file=array_shift($files); $resultArray["url"] = wp_get_attachment_url($file->ID); $resultArray["alt"] = $file->post_title; }else{ return(null); } } return($resultArray); }
回答2件
あなたの回答
tips
プレビュー