【WordPressの基礎】テーマにウィジェットを追加する「ウィジェットかサイドバーかそれが問題だ」

こんにちは、yumiです。

昨日に引き続き、プレーンなwordpress作りにチャレンジしているのですが、ウィジェット周りの設定方法を気持ちいいくらい忘れていたので、復習がてら書いておきます。

まず、ウィジェットを追加するサイドバーを作ってあげるためにfunctions.phpにwidgets_initを追加します。

//widgetsの設定
function my_widgets_init() {

	register_sidebar( array(
		'name' => 'main sidebar',
		'id' => 'main_sidebar',
		'before_widget' => '<div>',
		'after_widget' => '</div>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',
	) );

	register_sidebar( array(
		'name' => 'sub sidebar',
		'id' => 'sub_sidebar',
		'before_widget' => '<div>',
		'after_widget' => '</div>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',
	) );
}
add_action( 'widgets_init', 'my_widgets_init' );

こんな感じで、複数でもサイドバーを追加できます。
追加したら、管理メニューの外観に「ウィジェット」が表示されるはずなので、普通に必要なウィジェットをドラックドロップしましょう。

メニューの3番目に「ウィジェット」が入ります。

実際にサイトにウィジェット(サイドバー)を反映させるには、sidebar.phpなどに

<?php if ( is_active_sidebar( 'main_sidebar' ) ) : ?>
<div id="main_sidebar">
	<?php dynamic_sidebar( 'main_sidebar' ); ?>
</div>
<?php endif; ?>
<?php if ( is_active_sidebar( 'sub_sidebar' ) ) : ?>
<div id="sub_sidebar">
	<?php dynamic_sidebar( 'sub_sidebar' ); ?>
</div>
<?php endif; ?>

という風にdynamic_sidebar関数によってregister_sidebarで付けたidで呼び出します。
“【WordPressの基礎】テーマにウィジェットを追加する「ウィジェットかサイドバーかそれが問題だ」”の続きを読む