WordPressプラグインで画像をリサイズ & 開発時に役立つちょっとしたTips

SPONSORED LINK

すごい小ネタですが。笑

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 による開発環境の構築方法を紹介した記事です。

 

SPONSORED LINK

この記事を書いた人

宮内隆行

WP-CLIチームのコミッターの一人。VCCW開発者。WordPressコアコントリビューター。辺境の民。コーギーの写真には問答無用でいいねをします。WordPressスペシャリスト@タロスカイ株式会社。

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします

Club Capital P

Club Capital PはCapital Pのファンクラブです。有料会員制となっており、Gumroad経由でサブスクリプションをご購入いただき、ライセンスキーを登録いただくことで、会員特典を受け取ることができます。