マルチサイトWordPressのテーマを切り替える方法

Pocket

WordPressをマルチサイトで使っていて、マルチサイト内で共通利用しているテーマを一括で変更(アップデート版への変更など)したい場合、一個ずつWPの管理画面からテーマを変更するのは面倒。
そこで、switch_theme() を使う。
例えば、

  • 旧テーマのフォルダ: my_theme_v1
  • 新テーマのフォルダ: my_theme_v2

とある場合、まず、新テーマのmy_theme_v2をアップロードする。
次に、my_theme_v1のfunctions.phpに

    switch_theme('', 'my_theme_v2' );
    wp_redirect( site_url() );

のように書いておく。
一度そのサイトへアクセスすると、自動的にテーマが更新され、新しい my_theme_v2 がテーマになっている。
 
データベースを書き換えたりしている方法も散見されるが、そうするとafter_switch_themeフックが効かないので、不具合が起きるおそれがあるのでオススメしない。
 

この記事を書いた人