特定のプラグインやテーマの翻訳ファイルの自動更新を停止する方法(メモ)

公開日:2024(令和6)年12月1日/最終更新日:

WordPressのカスタマイズ方法についての画像

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています



独自の翻訳ファイルを作って、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」になるだけで同じです。

このコードをメモとしたのは以下の懸念事項があるからです。よくテストして使うようにしてください。

  • プラグインやテーマによっては無効にならないものがあるかも知れません
  • 一応合致しないものは自動更新するように(この措置を無視するように)していますが、ひょっとすると他のテーマやプラグインの翻訳更新もストップしてしまうかも知れません。



Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPressのカスタマイズ方法についての画像
プラグインの翻訳ファイルを確実に適用させるベストな方法(メモ)