WordPressのショートコードの書き方がどうやら古かったようだ。

WordPressのショートコードの書き方がどうやら古かったようだ。



これまでショートコードは以下のように書いていました。

function my_shortcode( $atts ) {
	extract( shortcode_atts(
		array(
			'name' => '',
		),
	$atts ) );
	return $name;
}
add_shortcode( 'shortcode', 'my_shortcode' );

これでも問題なく機能するのですが、phpcsでチェックすると

extract() usage is highly discouraged, due to the complexity and unintended issues it might cause.
// extract()の使用法は複雑さとそれが引き起こすかもしれない意図しない問題のために非常にお勧めできません。

WordPressのPHP コーディング規約にも確かにextractは使わないように、と書いてあります。

PHP コーディング規約 - WordPress Codex 日本語版
参考
PHP コーディング規約 - WordPress Codex 日本語版

extract() は使わない
#22400 によれば、

extract() はデバッグしにくいし、コードも読みにくい、ひどい関数。使うのは禁止、中で使ってるのも全部削除しよう。
Joseph Scott が 何がそんなにひどいか書いてる。

PHP コーディング規約 - WordPress Codex 日本語版

ということで、今では以下のように記述します。

function my_shortcode( $atts ) {
	$atts = shortcode_atts(
		array(
			'name' => '',
		),
		$atts
	);
	return $atts['name'];
}
add_shortcode( 'shortcode', 'my_shortcode' );

「WordPress ショートコード」で検索しても、昔のスタイルで紹介されていることも多いのでこれからは注意して参ります。

今日はここまで

関連する記事



こちらはいかが?


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*(必須)

*(必須・表示されません)