Jun

2016

26

「register_sidebars」wordpressのsidebar を増やしてアフィリエイトバナーなどの管理をしやすくする

広告

一番シンプルな方法

手順1

テーマファイル、function.php内にこちらを記述。
idは反映されませんがココには記載が必要です。

// 3が作りたい数
register_sidebars( 3, array(

    // 'Side Widget’ が管理画面での名前。%dは必要です。
    'name' => __( 'Side Widget %d' ),
    'id' => 'sidebar'
));

そうすると、管理パネルの「外観 > ウィジット」のサイドバーの数が増えます。

capture

手順2

テーマファイル内に「sidebar-」から始まる.phpのファイルを作ります。
「-(ハイフン)」必要です。

capture

手順3

作ったsidebar-smp.php等の作ったファイルの中に、下記のように

<?php dynamic_sidebar('Side Widget 2'); ?>

管理画面の「外観 > ウィジット」の適合するサイドバーの名前を入れます。(参照:手順1)

手順4 – ラスト

作ったサイドバーを表示したいところに、下記のような感じで、sidebar-〜.phpのハイフン以降の文字を入れます。

<?php get_sidebar('smp'); ?>

capture-1

表示されるはずです。

アレンジ方法、メモ、補足

手順1について

関数リファレンスだと「before_widget」等に値を入れていますが、こうするとウィジット内の項目がliで囲まれてしまって使いづらいので、使う場合下記のようにdivがいいのではと思います。
register_sidebars

register_sidebars( 3, array(
	'name'          => __( 'Side Widget %d' ),
	'id'            => 'sidebar',          
	'description'   => '',
	'class'         => '',
	'before_widget' => '<div id="%1$s" class="widget %2$s">',
	'after_widget'  => '</div>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>'
));

ひとつづつ設定する、register_sidebar()もありますが、拡張性も考え上記の複数まとめて設定できるregister_sidebars()記述しておいたほうがいいかと思います。

手順3について

id等はsidebar-〜.phpファイル内の、dynamic_sidebar()の外に書いたほうが、見た目でわかりやすいかと思います。

<div id="smpMenu">
	<div id="smpMenuInner" class="clearfix">
		<?php dynamic_sidebar('Side Widget 2'); ?>
	</div>
</div>

広告


コメントをどうぞ