ワードプレスのlanguage_attributesフィルタの使用方法・解説

概要

language_attributesフィルタは、HTMLタグの属性を出力する際に使用されるフィルタです。このフィルタを用いることで、HTMLドキュメントの <html> タグに追加の属性を挿入できます。具体的には、以下のような機能を実装する際によく使われます:

  1. 多言語対応 (language attributeの設定)
  2. サポートするブラウザの指定
  3. 音声読み上げ設定
  4. カスタムデータ属性の追加
  5. 特定のテーマやプラグイン向けの属性追加
  6. SEO対策としての各種属性追加
  7. スタイルシートやスクリプトの条件付きロード
  8. カスタム機能を持つHTML属性の追加

構文

apply_filters( 'language_attributes', $output );

パラメータ

  • $output (string) – 既定のHTML属性の文字列。

戻り値

  • (string) – フィルタリングされたHTML属性の文字列。

関連する関数

language_attributes

使用可能なバージョン

  • WordPress 1.5以降

コアファイルのパス

  • wp-includes/general-template.php

サンプルコード

サンプルコード 1

add_filter('language_attributes', 'add_custom_language_attributes');
function add_custom_language_attributes($output) {
    return $output . ' data-custom="123"';
}

このコードは、<html> タグにカスタムデータ属性 data-custom を追加するサンプルです。

サンプルコード 2

add_filter('language_attributes', 'add_rtl_attr');
function add_rtl_attr($output) {
    if (is_rtl()) {
        return $output . ' dir="rtl"';
    }
    return $output;
}

このコードは、RTL(右から左)の言語の場合に dir="rtl" 属性を追加するサンプルです。

サンプルコード 3

add_filter('language_attributes', 'set_custom_lang');
function set_custom_lang($output) {
    return str_replace('lang="en"', 'lang="fr"', $output);
}

このコードは、lang 属性を英語からフランス語に変更するサンプルです。

サンプルコード 4

add_filter('language_attributes', 'custom_theme_attributes');
function custom_theme_attributes($output) {
    return $output . ' class="my-custom-class"';
}

このコードは、<html> タグにカスタムクラス my-custom-class を追加するサンプルです。

サンプルコード 5

add_filter('language_attributes', 'add_meta_viewport');
function add_meta_viewport($output) {
    return $output . ' meta name="viewport" content="width=device-width, initial-scale=1"';
}

このコードは、ビューポート設定をHTML出力に追加するサンプルです。

この関数のアクションでの使用可能性

アクション 使用可能性
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

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

特に非推奨や削除されたバージョンは存在しません。

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


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