Hatena::ブログ(Diary)

count_0の日記 Twitter

 | 

2008-08-13

アップロード画像のリサイズ指定を改造

何時からかwordpressにはMTを意識したFlashアップローダが標準装備になった。

これが、画像をアップロードすると、3種類のファイルをアップロードフォルダに格納する。サムネイル、ミディアム、実寸の3種類。サムネイルとミディアムは画像をリサイズする。これはあらかじめ設定で決めておいたサイズになる。

このサムネイルとミディアムともう1個か2個違ったサイズが欲しい。要するにカスタムサイズのサムネイルが欲しいのだ。あと、Flashアップローダは良くできているけど、画像ファイルのIDが見えないので追加したい。

とりあえず1個だけカスタムサイズのサムネイルができるように、ゴリゴリっとテーマのfunctions.phpに書いてみる。

プラグインの種みたいなもの。

/*
 * 画像ライブラリのフォームにIDを表示する
 * 
 * 関連ファイル
 *      wp-admin/includes/media.php
 */

function custom_media_meta($blank, $post) {
    // var_dump($post);

    if (!$post)
        return;

    return "ID:" . $post->ID;
}

add_filter('media_meta', 'custom_media_meta', 20, 2);

/*
 * アップロードのフォームにカスタムサイズのチェックボックスを追加 
 *
 * 関連ファイル
 *     wp-admin/includes/media.php 
 */
function custom_size_image_attachment_fields_to_edit($form_fields, $post) {
    // var_dump($form_fields);
    $form_fields['image-size']['html'] .= "<input type='radio' name='attachments[$post->ID][image-size]' id='image-size-custom-$post->ID' value='custom' checked='checked' /><label for='image-size-medium-$post->ID'>" . カスタムサイズ . "</label>";
        
    return $form_fields;
}

add_filter('attachment_fields_to_edit', 'custom_size_image_attachment_fields_to_edit', 20, 2);

/*
 * 画像リサイズでカスタムサイズも行うように登録
 *
 * あらかじめwp_optionsテーブルに
 *      custom_size_w
 *      custom_size_h
 *      custom_size_crop  (1 or 0)
 *  を登録しておく。
 *  というか管理画面をつくるべき
 *
 *  関連ファイル
 *         wp-admin/includes/image.php 
 */
function add_custom_size($sizes) {
    // var_dump($sizes);
    array_push($sizes, 'custom');
    return $sizes;
}

add_filter('intermediate_image_sizes', 'add_custom_size', 20, 1);

wordpressにはPlugin APIとしてActionsとFiltersというフックが随所に仕込まれている。wordpressの本体のソースをざっとapply_filtersで検索するとたくさん出てくる。

上の場合filtersに自分の関数を登録して、処理途中のデータを引数として受け取る。そして、自分の好きなように加工して返す。applay_filters周辺の処理によるけど、本来行われる処理をそのまま乗っ取ることもできる。今回はちょっと加工するだけ。だからコメントアウトされているけど、var_dumpで引数がどんなデータかを確認している。

これに管理画面くっつけて、いくつもサムネイルサイズが登録できるとプラグインになりそう。がんばろう。

ちなみにwp_optionsというテーブルは、wordpress本体、プラグイン共通のデータ置き場になっている。各種設定はwp_optionsに置かれている。phpMyAdminでのぞいてみるとグッチャグチャである。

パームレスト

先日、MacBookキーボードが非常にヤニ汚れすると書いたが、これヤニ汚れじゃないっぽい。

というのも、この黄ばみに対して有効な方法が見つかったのだ。ずばり消しゴム。消しゴムで擦ると嘘みたいに黄ばみがとれる。完全ではないがね。

これできれい。心もこんなふうに簡単にきれいになるといいね!ウフフ!なんて思うわけだ。

そして、1日お仕事でMacBookを使う。なんとまた黄ばみ復活である。1日で。正味8時間以下で。しかも前より汚くなっている。自分の手?

Appleより先にGoogleに問い合わせる。パームレスト macbook - Google 検索

パームレスト欠けも変色問題も知らなかった。そして今、両方の症状が出ている。欠けた部分はヒビが入って、勝手にとれた。変色はここ1ヶ月ぐらい。熱が原因と言うが、去年は大丈夫だったよ。

しかも、自分のMacBookのシリアルは交換対象ではない。そして、2年も使っているので保証は切れている。それに、仕事で使っている。9月までは修理に出せない。

そうか!新型MacBookを買えということか!そんなおめでたくなれねーよ。

毎日消しゴムできれいにするか・・・。

 |