WordPressで現在のテーマではないテーマの get_theme_mod データを取得・削除する

またタイトルながっ

現在設定しているテーマではないテーマのカスタムデータ(っていうのかなオプションデータっていうのかな)を取得したいっていうこと…ないか(笑)

終了(笑)

いや、あったので(ユーティリティー的に)シェア。

あまり需要ないかもしれない。

現在のテーマではないテーマの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’ );

という感じでサクッと消せます。

消すときはよく考慮しましょう〜!

まあ、使わないか…

この記事が気に入ったら
いいね ! しよう

Twitter で