shortcode_atts_{shortcode} フックの使い方|説明・引数・注意点

説明

shortcode_atts_{shortcode} は、指定したショートコードの属性を加工するフィルターです。

基本構文

apply_filters( 'shortcode_atts_{$shortcode}', array $out, array $pairs, array $atts, string $shortcode )

引数

  • $out:処理後の属性
  • $pairs:既定値
  • $atts:ユーザー指定の属性
  • $shortcode:ショートコード名

戻り値

属性の配列を返します。

使い方(サンプル)

add_filter( 'shortcode_atts_gallery', function( $out ) {
	$out['columns'] = 4;
	return $out;
} );

注意点

  • shortcode_atts() の第3引数にショートコード名を渡した場合のみ呼ばれます。

実務での使いどころ

  • 特定のショートコードの、属性(既定値を含む)を、外から、書き換えるとき。

よくあるミスと対処

  • shortcode_atts() の第3引数(ショートコード名)を、指定していない。このフィルターが、実行されない。
  • 配列を、返していない。
  • フック名の ショートコード名 の部分を、置き換えていない。

NG例

add_filter( 'shortcode_atts_hello', function ( $out ) {
	$out['name'] = '太郎';
} ); // 返していない

OK例

add_filter( 'shortcode_atts_hello', function ( $out, $pairs, $atts ) {
	$out['name'] = '太郎';
	return $out;
}, 10, 3 );
// ショートコード側: shortcode_atts( $pairs, $atts, 'hello' );

使い分け早見表

関数・フィルター 役割
shortcode_atts() 属性の既定値を設定する(第3引数にショートコード名を指定)
shortcode_atts_{shortcode} 特定のショートコードの属性を、書き換える
add_shortcode() ショートコードを、登録する

関連項目

shortcode_atts()、add_shortcode()

公式リファレンス:shortcode_atts_{shortcode} | WordPress Developer Resources

コメント

タイトルとURLをコピーしました