WordPress4.2.2のテーマカスタマイザーに項目追加

最近ばたばたといくつかのサイトをバージョン4.2.2にアップグレードしていますが、外観>ヘッダーにアイコンを追加出来るようにしていたらその機能が使えなくなっちゃってました。

フックかける引数変わっちゃったのかな・・・

ここで困った経緯長々書きたいけど後できっと自分でも読まないので省きまして、参考にさせて頂いたサイトと書いた内容を書いておきます。

参考にさせて頂いたというかそのまま使わせて頂いたサイトです。ありがとうございます。

こちらも勉強になりました!ありがとうございます。

4.2.2まではこちらの方法でヘッダーにロゴ登録を追加していました。

あまり詳しくなくても案ずることなかれ。ググればそこに、勇者がいる。
素晴らしいですね、ネット社会って。

今回はほんとに長い時間悩んだんですけど、解決して良かったー。

functions.php

//コーポレートマーク
add_action( 'customize_register', 'themename_customize_register' );
function themename_customize_register($wp_customize) {
// セクションを追加
$wp_customize->add_section( 'site_title_image', array(
'title' => 'サイトタイトル画像',
'priority' => 65,
) );
// セクションの動作設定
$wp_customize->add_setting( 'site_title_image', array(
'default' => '',
'type' => 'option',
'capability' => 'edit_theme_options',
) );
// セクションのUIを作成する
$wp_customize->add_control( new WP_Customize_Image_Control(
$wp_customize,
'logo_Image',
array(
'label' => '画像(55×55pxで表示)',
'section' => 'header_image',
'settings' => 'site_title_image',
)
) );
}

最後にテンプレートに起こす時に、画像をそのままじゃなくて要素の背景として読み込む様に変えました。面倒になってcssとか省いて直書きしてしまった・・・

テンプレート側

<?php if (get_option('site_title_image')): ?>
<?php $style_attr = get_theme_mod( 'site_title_image' ) ? ' style="display: block; width: 55px; height: 55px; background: url( ' . get_theme_mod( 'site_title_image' ) . ' ) no-repeat; text-indent: -9999px" id="site-mark"' : ''; ?>
<a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"<?php echo $style_attr;?>></a>
<?php endif; ?>

この記事にコメントを残す