お問い合わせ
    氏名

    メールアドレス

    件名

    お問い合わせ内容



    会員登録(無料)
    ログイン
    スキルアップは今すぐこちら!▶

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

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

    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() );
    } ?>

    ご参考ください😃

    0 件のコメント

    コメント
    タイトルとURLをコピーしました