夕焼けに染まる神戸ポートタワーと神戸海洋博物館のフリー画像(写真)
この記事の所要時間: 246

WordPressでテーマごとに設定を保持できる便利な関数

set_theme_mod( $name, $value )

とその呼出に使う

get_theme_mod( $name )

消すときは remove_theme_mod( $name )

テーマディレクトリ名が変わるとデータが失われる

この関数はテーマが同じディレクトリ名でないとせっかく保存しているデータが利用出来ません。

WordPress のテーマやプラグインでよく使われるデータ保存方法 update_option と同様、 wp_options テーブルに保存されます。

保存される際の option_name が下記のようになります。

theme_mods_twentysixteen ※twentysixteen の設定データ

中身はシリアライズされたデータです。

サンプル

a:1:{s:16:"sidebars_widgets";a:2:{s:4:"time";i:1466742279;s:4:"data";a:2:{s:19:"wp_inactive_widgets";a:0:{}s:9:"sidebar-1";a:6:{i:0;s:8:"search-2";i:1;s:14:"recent-posts-2";i:2;s:17:"recent-comments-2";i:3;s:10:"archives-2";i:4;s:12:"categories-2";i:5;s:6:"meta-2";}}}}

…というデータ格納時の事情もあり、ディレクトリ名が変わってしまうとテーマで設定したデータが使えなくて初期化されてしまうわけです。

…以上ですっ!

update_option であればテーマが変更しても変わりません。

update_option( $name, $value ) で登録した値はテーマが変わっても使えます。

get_option( $name ) で取得します。

…というかテーマやプラグインで登録したとして、そのテーマやプラグインをアンインストールしても、テーマ・プラグインの中でアンインストール時にパラメータを削除する仕様がなければそのまま残り続けます。

もう一度同じテーマ・プラグインをインストールすると使えるので良し悪しではあるんですが、定期的に使ってないパラメータを掃除する必要がある・・・かもしれません。

…用途に応じて使いどころを見極めましょう。

ちなみに・・・

update_site_option っていうのもある

update_site_option はサイトごとの設定です。

…それってなにに? と思うかもしれません。

マルチサイト用の関数になります。

ただ、この関数は現在(ver.4.4以降)

update_network_option

に機能が移りました。

update_site_option を使っても内部で update_network_option が呼ばれているようです。

あまり使わないのでどういうパラメータを入れるのか想像するだけです(笑)

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

Twitter で