またタイトルながっ
現在設定しているテーマではないテーマのカスタムデータ(っていうのかなオプションデータっていうのかな)を取得したいっていうこと…ないか(笑)
終了(笑)
いや、あったので(ユーティリティー的に)シェア。
あまり需要ないかもしれない。
現在のテーマではないテーマのget_theme_mod()
get_theme_mod(〜パラメータ名〜) って関数は現在のテーマのカスタムデータを取得するんですが
ほかのテーマから移行したいと思って、そういう機能作ってみたんですよ。
これ、 set_theme_mod( ‘〜パラメータ名〜’, 内容 ) でセットしてテーマごとに使えて便利なんですが、これ自体にテーマを指定することはできませんよね。
そこで get_option 使っちゃいます。
get_option 使ってテーマのデータ取得
このデータ自体は wp_options に格納されてるんですね。
こちらでまとめてますので参考にしてください。
で、この記事で書いたように下記の名称でセットされてます。
theme_mods_〜テーマのディレクトリ名〜
例えば theme_mods_twentysixteen (twentysixteenの場合)のようなキーになっています。
なので、たとえば twentysixteen のテーマデータ site_color(仮名)を取得したい場合は下記のようにすると取れます。
$twentysixteen_theme_mods = get_option(‘theme_mods_twentysixteen’);
使いたいデータがあればキーを指定して取得すればいいんです。
$site_color = $twentysixteen_theme_mods[‘site_color’];
※パラメータは架空のものです。
全データ確認するならこんな感じ。
$twentysixteen_theme_mods = get_option( 'theme_mods_twentysixteen' );
foreach ( $twentysixteen_theme_mods as $key => $value ) {
// 全データ表示
echo $key." データ<br>";
var_dump( $value );
}
}
削除…
また、もう使っていないテーマや削除したテーマのデータも残っちゃてるので消したいっていうときは
delete_option( ‘theme_mods_twentysixteen’ );
という感じでサクッと消せます。
消すときはよく考慮しましょう〜!
まあ、使わないか…