すごい小ネタですが。笑
WordPressのプラグインで画像をリサイズするには以下のような感じ。
$editor = wp_get_image_editor( dirname( __FILE__ ) . '/test.jpg' ); $editor->set_quality( 60 ); $editor->resize( 1000, 1000 ); $editor->save( 'saved-60.jpg' );
wp_get_image_editor()
という関数を使用すると WP_Image_Editor
というクラスのインスタンスが帰ってくるのでそのメソッドを使用してゴニョゴニョする感じ。
なんてこともないのですが、またやる機会があったときのためにということで。
こういう小ネタをちょちょっと試すときのTips
たとえば特定の WordPress の関数でも PHP の関数でもなんでもいいのですが、このコードってどういう挙動なの?って言う時ありません?
そういうときにプラグインやテーマに直接書いて var_dump()
とかやるのって一見手っ取り早く感じますが、消すのを忘れたりとか試してるうちにだんだん大きなコードになったりとかしますよね。
僕はこんなときは、WP-CLI のプラグインの雛形を生成するコマンド wp scaffold plugin
を実行して、その結果できたプラグインのユニットテスト(この場合プラグインはいらない。笑)用の雛形に試したいコードを書いたりします。
今回の場合は、Jpegのクオリティを変えたらどれぐらい劣化するのかな?てきなことをいくつかのケースで試したかったというのもありまして以下のように書いたりしました。
<?php /** * Class SampleTest * * @package _wp */ /** * Sample test case. */ class SampleTest extends WP_UnitTestCase { /** * A single example test. */ function test_sample() { // Replace this with some actual testing code. $this->assertTrue( true ); } public function test_image_resize() { $editor = wp_get_image_editor( dirname( __FILE__ ) . '/test.jpg' ); $editor->set_quality( 60 ); $editor->resize( 1000, 1000 ); $editor->save( 'saved-60.jpg' ); $editor->set_quality( 100 ); $editor->resize( 1000, 1000 ); $editor->save( 'saved-100.jpg' ); } }
test_image_resize()
っていうのをちょちょっと追加して実行した感じです。
ユニットテスト環境をつくるのがめんどくさいと思うかもしれませんが、実際にはコマンドを2回叩くだけでテストコードを書き始められますし、後腐れがないのもいいですよね。
あと、var_dump()
って書くやりかただと消したいじゃないですか。(ていうか消さないといけない。笑)
この方法なら消さなくても実害がないし、積み上げ算で血となり肉となる気がするのでしれっとGitにコミットすることも多いです。
以下は有料会員向けですが、PHPStorm +WP-CLI による開発環境の構築方法を紹介した記事です。
コメントを残す