指定 WordPress 讀取的本地化檔案

感謝台南小聚讓我知道要寫什麼東西。

經過本次的實作坊相信已經會製作自己專屬的本地化語系檔案,剩下的就是上傳上去伺服器並且使用啦!

正常會教你將檔案放到 /wp-content/languages/plugins 底下,但這一個位置也是系統自動從 WordPress.org 下載的語系檔案存放位置,所以如果你放在那個位置還是跟直接修改外掛提供的檔案會有一樣的問題,就是當官方有更新的時候檔案就會被洗掉了。
所以我們需要可以將檔案放到指定的位置,這樣就不用擔心檔案會被蓋掉啦。

這邊提供的做法,是另外建立一個資料夾 /wp-content/my-languages 來存放你自己製作出來的本地化語系檔案。所以跟原本系統自動抓取的情況來說差別就只是將資料夾的名稱多了一個 my- 來區分是自己的還是自動生出來的。

我提供的寫法,你檔案擺放的位置與檔案名稱的規則都跟原本的一樣,就真的只是改了一個資料名稱而已。
且你沒有要修改的檔案,他還是會使用原本存在 languages 底下的檔案,不用擔心。

注意,當原本的外掛升級之後,因為你已經改用了自己的本地化檔案,原本應該會自動更新的本地化內容,並不會自動地將新的內容整合進來這一個檔案當中,所以你需要自己手動的更新該檔案才可以有完整的本地化內容。

add_filter('load_textdomain_mofile', function($mofile, $domain) {
    $new_mofile = str_replace(WP_LANG_DIR, WP_CONTENT_DIR . '/my-languages', $mofile);
    if( is_file($new_mofile) ) {
        $mofile = $new_mofile;
    }
    return $mofile;
}, 10, 2);

如果你不知道如何加入程式碼到你的網站,或是需要一個輕鬆簡單的方法加入程式碼,推薦使用 Code Snippets
他是一款讓你在後台就可以輕鬆加入程式碼到網站中的外掛。並且加入的程式碼還可以個別的設定啟用或停用,讓你輕鬆的管理這些額外加入的程式碼片段。
如果對於該外掛使用上有疑問,請至外掛頁面觀看說明或是與官方團隊聯繫。


發表留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料