概要
shortcode_atts
関数は、WordPress のショートコードで使われる属性値を処理し、無効な属性値を除外するために使用されます。この関数を使用することで、デフォルトの属性設定を持ちながら、ユーザーが提供した属性を簡単に扱うことができます。主に、以下のような機能実装時に用いられます。
- ショートコードのデフォルト設定を簡単に作成する
- 属性が正しく設定されているかのバリデーション
- ショートコードを柔軟にカスタマイズできる
- 属性の型や値の検証(必要に応じて)
- ユーザーが指定した属性のみを取得する
- ショートコードの引数に対してデフォルト値を適用する
- コードの保守性を向上させる
- 他の開発者とのコラボレーションを容易にする
構文
shortcode_atts( $pairs, $atts, $shortcode );
パラメータ
$pairs
(array): デフォルト属性とその値の配列。$atts
(array): ユーザーが提供した属性の配列。$shortcode
(string|false): ショートコード名(省略可能)。
戻り値
- (array): デフォルト属性とユーザー提供の属性がマージされた配列。
関連する関数
使用可能なバージョン
- WordPress 2.5 以降
コアファイルのパス
wp-includes/shortcodes.php
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: ショートコードのデフォルト設定を作成
function my_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'color' => 'red',
'size' => 'medium'
),
$atts
);
return "Color: {$atts['color']}, Size: {$atts['size']}";
}
add_shortcode( 'my_shortcode', 'my_shortcode' );
このサンプルコードでは、my_shortcode
というショートコードを定義し、デフォルト属性として color
と size
を設定しています。ユーザーが属性を提供しなかった場合、デフォルト値が使用されます。
サンプルコード 2: 属性のバリデーション
function custom_button_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'url' => '#',
'text' => 'Click Here'
),
$atts
);
if ( ! filter_var( $atts['url'], FILTER_VALIDATE_URL ) ) {
return 'Invalid URL';
}
return '<a href="' . esc_url( $atts['url'] ) . '">' . esc_html( $atts['text'] ) . '</a>';
}
add_shortcode( 'custom_button', 'custom_button_shortcode' );
このサンプルでは、custom_button
ショートコードを定義し、URL のバリデーションを行っています。無効な URL が提供された場合はエラーメッセージを返します。
サンプルコード 3: ユーザー提供の属性のみを取得
function my_alert_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'message' => 'Default Alert'
),
$atts
);
return '<script>alert("' . esc_js( $atts['message'] ) . '");</script>';
}
add_shortcode( 'my_alert', 'my_alert_shortcode' );
この例では、my_alert
ショートコードを作成し、ユーザーが指定したメッセージをアラートとして表示しています。
サンプルコード 4: 複数の属性を扱う
function styled_div_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'class' => 'default-class',
'content' => 'Hello World'
),
$atts
);
return '<div class="' . esc_attr( $atts['class'] ) . '">' . esc_html( $atts['content'] ) . '</div>';
}
add_shortcode( 'styled_div', 'styled_div_shortcode' );
このサンプルでは、styled_div
ショートコードを定義し、複数の属性を扱っています。class
と content
の属性を使って、スタイル付きの DIV を生成します。
サンプルコード 5: デフォルト値の動的設定
function dynamic_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'value' => get_option('default_value', 'Default Value')
),
$atts
);
return 'The value is: ' . esc_html( $atts['value'] );
}
add_shortcode( 'dynamic', 'dynamic_shortcode' );
このコードでは、dynamic
ショートコードを作成し、get_option
を使って WordPress のオプションからデフォルト値を取得しています。これにより、デフォルト値を動的に設定できます。