[ワードプレス]画像サムネイル作成してURL取得する関数
ワードプレスは、サムネイルがない場合は完全なサイズの画像を返します。その後の2000ピクセル建ての画像をHTMLから100pxで表示する悲劇的な事態が起る。画像サムネイルリストであれば、あるページから30MBをダウンロードすることになるかもしれない。
だから、そのような事態を防止するためには、HTML形式で見せてくれるサイズにぴったりのサムネイルをサーバーで生成された後、URLを返しなければならない。それをしてくれる機能だ。引数の値は、添付ファイルの$post_id(ワードプレスでは、添付ファイルの情報もpostテーブルに保存されます。)、必要な幅と高さだ。
function mytory_get_thumb_src($attachment_id, $width, $height){
$filepath = get_attached_file($attachment_id);
$upload_path = wp_upload_dir();
$basedir = $upload_path['basedir'];
// filepathは$ basedirまで含まれている場合があります。
$filepath = str_replace($basedir, '', $filepath);
$fullpath = $basedir . $filepath;
if( ! is_file($fullpath)){
return FALSE;
}
$pathinfo = pathinfo($fullpath);
$new_fullpath = $pathinfo['dirname'] . '/' . $pathinfo['filename'] . "-{$width}x{$height}" . '.' . $pathinfo['extension'];
if( ! is_file($new_fullpath)){
$image = wp_get_image_editor($fullpath);
if ( ! is_wp_error( $image ) ) {
$image->resize( $width, $height, false );
$image->save( $new_fullpath );
}
}
$new_filepath = str_replace($basedir, '', $new_fullpath);
return $upload_path['baseurl'] . $new_filepath;
}
また、ワードプレスのイメージを持って作業するときは、$image = wp_get_image_editor($fullpath)で始まるをする。この関数は、WP_Image_Editorクラスを返しますが、このクラスは、画像を非常に簡単に編集できるようにAPIが非常によく整理されてています。
- コメント機能はありません。コメントの代わりに[email protected]にメールを送ってください。