2026年6月1日

2026年6月1日

WordPressのdark mode切り替えスイッチを実装する方法

はじめに

ここでは、ユーザーが選択できるダークモードスイッチをWordPressテーマに追加する方法を紹介します。ダークモードは特に夜間の閲覧や長時間の読書に便利で、視覚的なアクセシビリティとユーザーフレンドリーさを向上させます。

症状・背景

このテーマが必要になる主な場面:

  • ユーザーがダークモードを好み、その選択肢を与えたい場合
  • サイトのデザインに視覚的なアクセシビリティを追加したいとき
  • 夜間や暗い環境での読書体験を改善したい時

手順・設定方法

ステップ1: テーマにダークモード用CSSファイルを追加

# functions.phpかカスタムプラグイン内に次のコードを追加します。
function add_dark_mode_css() {
    wp_enqueue_style('dark-mode', get_template_directory_uri() . '/css/dark.css', array(), '1.0');
}
add_action('wp_enqueue_scripts', 'add_dark_mode_css');

# テーマのCSSディレクトリに新しいファイルを追加します。
touch /path/to/your-theme/css/dark.css

ステップ2: ダークモード切り替えスイッチを作成

# functions.phpかカスタムプラグイン内に次のコードを追加します。
function add_dark_mode_toggle() {
    echo '<button id="dark-mode-toggle" onclick="toggleDarkMode()">ダークモード切り替え</button>';
}
add_action('wp_footer', 'add_dark_mode_toggle');

# テーマのJavaScriptファイルに次のスクリプトを追加します。
echo "<script>
function toggleDarkMode() {
    document.body.classList.toggle('dark-mode');
}
</script>";

ステップ3: カスタムCSSでダークモードを適用

# dark.cssファイルに次のコードを追加します。
body.dark-mode {
    background-color: #121212;
    color: #ffffff;
}

/* テーマの他の要素も順次変更 */

ステップ4: ダークモード状態を保存するオプションを有効にする

# functions.phpに次のコードを追加します。
function save_dark_mode_preference() {
    if (isset($_POST['dark-mode-preference'])) {
        update_user_meta(get_current_user_id(), 'dark_mode', $_POST['dark-mode-preference']);
    }
}
add_action('wp_ajax_save_dark_mode_preference', 'save_dark_mode_preference');

注意事項

  • ダークモードを有効にする前に、テーマの全体的な見た目と機能が壊れないことを確認してください。
  • カスタムCSSは特定のテーマに依存する可能性があるため、他のテーマで動作するかどうかテストすることをお勧めします。
  • 安全性のためにユーザー設定データを適切に保存し、不要な情報を削除しないようにしましょう。

まとめ

1. ダークモードCSS: ダークモード用のカスタムCSSファイルを作成して追加

2. スイッチボタン: サイトフッターにダークモード切り替えボタンを追加

3. JavaScript: ボタンクリックでダークモードクラスを付与するためのJavaScriptを実装

4. ユーザーメタデータ保存: ユーザーが選択したダークモード状態を永続的に保持

5. テストと改善: 完了後、サイト全体をテストして必要に応じて調整

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ