WordPress ショートコード作成でextract()を使うのはもうやめよう

昔作ったWordPressショートコードを更新しようと開いたら、phpcsに怒られました。 extract() というPHPの関数について何か言われているようです。

extract() usage is highly discouraged, due to the complexity and unintended issues it might cause.

訳: extract()は複雑で意図しない問題が発生する可能性があるためお勧めできません。

extract() はWordPressのショートコードを作る際に、伝統的に使われてきました。こんな感じ↓に。

function my_shortcode( $atts ) {
	extract(
		shortcode_atts(
			array(
				'title' => 'My Title',
			),
			$atts
		)
	);
	return $title;
}

でも、この書き方はもうやめよう。

素直にこう書くのが現在推奨されています。

function my_shortcode( $atts ) {
	$atts = shortcode_atts(
		array(
			'title' => 'My Title',
		),
		$atts
	);

	return $atts['title'];
}

というわけでphpcsからも怒られなくなりました。それではまた。

  • ブックマーク
  • Feedly

この記事を書いた人

Takashi Fujisaki

10年の音楽制作屋さんを経て、2010〜 Webデザイン / フロントエンドエンジニア / ブロガーとして活動しています。WordPressテーマ・プラグイン制作やちょっとしたアプリ開発など。Appleと自転車とラーメンが好き。