WordPressのマルチサイトを用いた多言語子サイトにおけるしらぎく折り畳みスクリプトの導入

主題
WordPressで、マルチサイトを用いて多言語の子サイトを運用している場合に、しらぎく折り畳みスクリプトを導入する方法について述べる。

背景
筆者は、WordPressで、マルチサイトを用いて多言語の子サイトを運用(と言っても、2言語だが…。)している。そこで、しらぎく折り畳みスクリプトと言うjavascriptをうまく動かせない問題に遭遇し、困惑した。
知らなかったのだが、このスクリプトは、ウェブページ1ページに1個しか配置できないようだ。最初はそれを、ボタンを日本語と英語にした1個づつ、合計2個をWordPressに読み込ませ、ページエラーを発生させてしまった。
トライアンドエラーののち、折畳みスクリプト一個ならば、正常に動作することを確認した。そして言語コードにより、2個の折畳みスクリプトを切り替えるようにした。

前提条件

  • WordPressで、マルチサイトを用いて多言語の子サイトを運用していること。

  • 上記子サイトにおいて、正しくサイトの言語を設定してあること。(ダッシュボード -> 一般設定にある)

    サイト言語の設定(日)


    サイト言語の設定(英)

PHP内容
子テーマのfunctions.phpに記述する内容は、以下の通り。

        <?php

            /**
            * HideBlock
            */
            function hideBlock() {
        
                /** 
                * 言語コードにより、「開く/閉じる」表示文字を変更
                */
                global $locale;
        
                if ($locale == 'ja'){
        
                    wp_enqueue_script('hideBlock', '../../../../js/hideBlock_JP.js');
        
                } else {
        
                    wp_enqueue_script('hideBlock', '../../../../js/hideBlock_EN.js');
                }
            }
            add_action('wp_enqueue_scripts', 'hideBlock');

        ?>
    

上記スクリプトにおいて、

  • 11行目のglobal $locale;宣言は、$localeをもう一つの関数でも共有するために行った。

  • 13~20行目のif〜elseブロックの分岐を増やせば、より多くの言語に対応できる。

以上。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL