loadingloadingloadingloadingloadingloadingloadingloading loadingloadingloadingloadingloadingloadingloadingloading

設定さえすればログインしていないユーザにも非アクティブなテーマをプレビューさせることができる Theme Switcha ですが、プレビュー時限定の処理をさせるにはどうすればよいのか… 🤔

必要にせまられたのでプラグインの中を見てみたらこういうのがありました:

$_COOKIE['theme_switcha_theme_'. COOKIEHASH]

var_dump してみると、非プレビュー時は null、 任意のテーマをプレビューしているときはそのテーマの名前 (テーマフォルダ名) が出力されるようです。

var_dump($_COOKIE['theme_switcha_theme_'. COOKIEHASH]); 

// 非プレビュー時
null

// テーマプレビュー時
'masudakohboh-preview' (例です)

なのでテーマプレビュー中かどうかを PHP で判定するにはこれでいけるのではないでしょうか:

$theme_is_switched = $_COOKIE['theme_switcha_theme_'. COOKIEHASH] !== null;

if ( $theme_is_switched ) {
  // プレビュー中限定の処理
}

body タグに専用のカスタムクラスを付けたり、要素を表示・非表示させたりと使い道がたくさんありそうです。