ワードプレスのesc_attr__関数の使用方法・解説

概要

esc_attr__関数は、エスケープ処理した翻訳テキストを取得するための関数です。この関数は主にHTML属性内で使用されるテキストの安全性を確保するために使用されます。具体的には次のような機能を実装する際に役立ちます:

  1. HTML要素の属性に翻訳された文字列を挿入する場合
  2. フォームの入力フィールドに翻訳されたラベルを設定する場合
  3. ボタンやリンクのテキストとして翻訳を表示したい場合
  4. レポートやエラーメッセージを属性内で表示する場合
  5. ウィジェット内でのテキストのエスケープ処理
  6. テーマのカスタマイズオプションでのテキスト処理
  7. JavaScriptで使用するデータ属性としてのエスケープ
  8. プラグインの設定ページでのテキストエスケープ

構文

esc_attr__( $text, $domain );

パラメータ

  • $text (string): 翻訳したいテキスト。
  • $domain (string, optional): テキストドメイン。デフォルトはテーマのテキストドメインまたはプラグインのテキストドメイン。

戻り値

エスケープされた翻訳された文字列を返します。

関連する関数

使用可能なバージョン

esc_attr__関数は、WordPress 4.0以降で利用可能です。

コアファイルのパス

wp-includes/l10n.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

非推奨または削除されたバージョン

現在、esc_attr__関数は非推奨または削除されたバージョンはありません。

サンプルコード

サンプル1: 翻訳された属性値をボタンに表示

このサンプルコードでは、翻訳されたテキストをボタンの属性に安全に出力します。

<button type="button" title="<?php echo esc_attr__( 'Click Here', 'text-domain' ); ?>">
    <?php echo esc_attr__( 'Submit', 'text-domain' ); ?>
</button>

サンプル2: 入力フィールドのラベルに翻訳を使用

入力フィールドのラベルに安全にエスケープされた翻訳テキストを使用しています。

<label for="username"><?php echo esc_attr__( 'Username', 'text-domain' ); ?></label>
<input type="text" id="username" name="username" />

サンプル3: データ属性に翻訳を含める

データ属性にエスケープ処理した翻訳テキストを設定する例です。

<div data-message="<?php echo esc_attr__( 'Hello World', 'text-domain' ); ?>">
    <!-- Content Here -->
</div>

サンプル4: JavaScriptで使用する属性のテキスト

JavaScriptコードで使用する属性値として、エスケープ処理された翻訳を出力しています。

<script>
    var message = '<?php echo esc_attr__( 'This is a message', 'text-domain' ); ?>';
    alert(message);
</script>

サンプル5: ウィジェットのタイトルに翻訳を使用

ウィジェットタイトルにエスケープ処理した翻訳テキストを設定します。

class My_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct(
            'my_widget',
            esc_attr__( 'My Widget', 'text-domain' ),
            array( 'description' => esc_attr__( 'A sample widget', 'text-domain' ) )
        );
    }
}

これらのコードはすべて著作権フリーです。

この関数について質問する


上の計算式の答えを入力してください