プログラマの戯言

Wordpress、PHP、Movabletype、Javascript、SQL、アプリ他いろいろTips

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
 }
}
?>