独自の翻訳ファイルを作って、WordPressの翻訳ディレクトリ(プラグインならwp-content/languages/pluginsの中、テーマならwp-content/languages/themesの中)へアップロードして文字列をオリジナルに変更したはずなのに、いつの間にか更新されて元に戻って困ることありませんか?
これはWordPress公式のテーマやプラグインの配布ページから入手したものに対して、Translating WordPressで翻訳されたものが一定条件に達すると、自動でサイトへ上書きする仕組みになっているからで、翻訳の変更が確定(承認)されたのをトリガーとして、不定期に上書きが行われるため、いつの間にか..というのが発生してしまうのです。
いろいろ調べてみたものの、一括で停止してしまうようなコードやプラグインは見つかったのですが、このプラグイン(テーマ)だけ翻訳更新を止めるという手法が見つけられずAI君の力を借りながらいろいろと試行錯誤したところ、一応以下のコードを有効化しているテーマのfunctions.phpへ追加することで更新通知が止まり、自動更新もされなくなるようなのでメモとして公開しておきます。
function pwcn_disable_auto_update_sp_translate( $update, $item ) {
// 自動更新を停止したいプラグインやテーマのスラグを列記
$plugins = array( 'プラグインスラグ1','プラグインスラグ2' );
if ( 'plugin' === $item->type && in_array( $item->slug, $plugins ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_translation', 'pwcn_disable_auto_update_sp_translate', 10, 2 );
functions.phpへ追加したら、無効にしたいテーマやプラグインのスラグを「プラグインスラグ1」「プラグインスラグ2」のところへ追加すれば機能すると思います。足す場合はコンマで区切ってシングルクォートで囲んでください。
プラグインスラグとは、以下のいずれかを指定します(基本どちらも同じ文字列です)。
- 「wp-content」→「plugins」フォルダにある目的のプラグインのフォルダ名
- プラグイン公式ページのURLに含まれるプラグインを識別する文字列部分
テーマの場合も階層が「themes」になるだけで同じです。
このコードをメモとしたのは以下の懸念事項があるからです。よくテストして使うようにしてください。
- プラグインやテーマによっては無効にならないものがあるかも知れません
- 一応合致しないものは自動更新するように(この措置を無視するように)していますが、ひょっとすると他のテーマやプラグインの翻訳更新もストップしてしまうかも知れません。
コメントを残す