概要
is_rtl
関数は、現在のロケールが右から左に書かれている(右書き)かどうかを調べるための関数です。この関数は、多言語対応のテーマやプラグインを設計する際に非常に便利です。以下のような機能を実装する際によく使われます。
- RTL(右から左)用のスタイルシートを読み込む
- コンテンツの表示順序を調整する
- テキストアラインメントを右寄せにする
- ボタンやナビゲーションメニューの方向を変更する
- RTL専用の画像やアイコンを使用する
- 特定のウィジェットの位置を入れ替える
- タイポグラフィの調整
- その他のカスタムテンプレートタグの生成
構文
is_rtl();
パラメータ
この関数にはパラメータはありません。
戻り値
is_rtl
関数は、現在のロケールが右書きである場合は true
を、そうでない場合は false
を返します。
関連する関数
使用可能なバージョン
is_rtl
関数は、WordPress 2.8.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 | 〇 |
サンプルコード
以下は is_rtl
関数を使用したサンプルコードです。
- RTL スタイルシートの読み込み
function load_rtl_styles() {
if ( is_rtl() ) {
wp_enqueue_style( 'rtl-styles', get_template_directory_uri() . '/rtl.css' );
}
}
add_action( 'wp_enqueue_scripts', 'load_rtl_styles' );
このコードは、現在のロケールが右書きの場合にのみ、RTL専用のスタイルシートを読み込みます。
- コンテンツのアラインメント
function my_content_alignment( $content ) {
if ( is_rtl() ) {
return '<div style="text-align: right;">' . $content . '</div>';
}
return $content;
}
add_filter( 'the_content', 'my_content_alignment' );
このコードは、コンテンツが右書きの場合に右寄せで表示します。
- ナビゲーションメニューの方向変更
function my_menu_alignment( $output ) {
if ( is_rtl() ) {
$output = str_replace( 'left', 'right', $output );
}
return $output;
}
add_filter( 'wp_nav_menu', 'my_menu_alignment' );
このコードは、ナビゲーションメニューの方向を右書きに合わせて変更します。
- RTL画像の使用
function my_custom_image() {
if ( is_rtl() ) {
return get_template_directory_uri() . '/images/logo-rtl.png';
}
return get_template_directory_uri() . '/images/logo.png';
}
このコードは、右書きのロケールの場合に特定の画像を返します。
- ウィジェット位置の調整
function my_widgets_init() {
register_sidebar( array(
'name' => 'My Sidebar',
'id' => 'my_sidebar',
'description' => 'A custom sidebar',
'before_widget' => '<div class="%2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
) );
if ( is_rtl() ) {
// RTL用にカスタマイズ
}
}
add_action( 'widgets_init', 'my_widgets_init' );
このコードは、ウィジェットを登録し、RTLの場合にカスタマイズを行う準備をします。
出典:WordPress Codex (https://codex.wordpress.org/)