スキルアップを始める!

【WordPress】get_theme_mod|set_theme_mod|現在のテーマのテーマ設定値をひとつ取得する

WordPress(ワードプレス)
WordPress(ワードプレス)
この記事は約4分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

get_theme_mod( $name, $default )

get_theme_mod( $name, $default )
現在のテーマのテーマ設定値をひとつ取得します。基本的なテーマ固有設定を扱う必要がある場合、set_theme_mod() と共に、テーマ開発者にとって Settings API の簡単な代替になります。

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_theme_mod

例えば、カスタマイズの設定で「Enable Sharing Icons」「Enable Scroll to Top」といったような値がTrueかFalseか?といった情報を取得できるようです。

set_theme_mod( $name, $value )

set_theme_mod( $name, $value )でget_theme_modの値をセットできます。

第1引数:設定値名
第2引数:デフォルト値

を指定します。

set_theme_mod( 'link_color', true );
set_theme_mod( 'link_hover_color', true );
set_theme_mod( 'link_visited_color', true );

[“setting_name”]=> bool(true) が追加されました。

カスタマイズ設定内のON/OFFをコントロールすることができそうです。

レコードの保存場所

レコードは、options テーブルのtheme_mods_テーマファイル名のフィールドに保存されます。

set_theme_modしたデータがvalueに追加されています。

wp_head にアクションフックしてCSS出力

function customize_css()
{
$link_color = get_theme_mod( 'link_color', '#00000ff');
$link_hover_color = get_theme_mod( 'link_hover_color', '#eeeeee');
$link_visited_color = get_theme_mod( 'link_visited_color', '#e0e0e0');
}
add_action( 'wp_head', 'customize_css');

カスタマイズ画面で公開ボタンを押すと設定値が保存されます。

この設定の場合は、wp_headにCSSとして出力させることができます。

var_dumpで値を取得する

var_dumpを使うことでget_theme_modの値を取得できます。

<?php
set_theme_mod( 'setting_name', true );
$mods= get_theme_mods();
var_dump($mods);
?>

まとめ

カスタマイズの設定値によって条件を変えたり、ON/OFFをコントロールするときに、get_theme_mod、set_theme_modが使えそうです。

「Hestia」というテーマのfront-page.phpの冒頭例:

if ( ! is_page_template() && ! get_theme_mod( 'disable_frontpage_sections', false ) ) {
		get_header();
	do_action( 'hestia_header' ); ?>
	<div class="<?php echo esc_attr( hestia_layout() ); ?>">
		<?php
		do_action( 'hestia_sections', false );
		get_footer();
} else {
	include( get_page_template() );
} ?>

ご参考ください😃

URLをコピーしました!