Wordpress カスタムフィールドで投稿したファイルを自動で判別する方法
カスタムフィールドでファイルを投稿できるようにした際
WordやExcel、画像などを自動で判別して
表示する方法を下記にまとめました。
<?php if($file = get_post_meta($post->ID,'ファイル',TRUE)){ $url = $file = wp_get_attachment_url($file); $file = pathinfo($file); //ファイル名取得 if($file1['filename']){ $filename = $file1['filename']; } <span style="color: #80ffff">//画像(jpg,png)なら</span> if($file1['extension'] == 'jpeg' || $file1['extension'] == 'jpg' || $file1['extension'] == 'png'){ $pic = wp_get_attachment_image_src(get_post_meta($post->ID,'ファイル',TRUE),'medium'); ?> <img src="<?php printHtml($pic[0]); ?>" width="<?php printHtml($pic[1]); ?>" height="<?php printHtml($pic[2]); ?>" <?php //PDFなら }elseif($file['extension'] == 'pdf'){ //ファイルまでのパスを整形 if($file['dirname']){ $dirname = str_replace('news/','',$file['dirname']); } ?> <p><a href="<?php if($dirname){ printHtml($dirname); } echo '/'; printHtml($file1['basename']); ?>"> <?php if($filename){ printHtml($filename); }else{ ?>ファイル<?php } ?></a></p> <?php //他ファイル }else{ //上記以外のファイルの時、pathinfoではファイル名が取得できないので //pathinfoのdirnameキーから取得 $title = str_replace($file['dirname'].'/','',$url); ?> <p><a href="<?php printHtml($url); ?>"> <?php if($title1){ printHtml($title); }else{ ?>ファイル<?php } ?> </a></p> <?php } } ?>