サイドバーを表示したり作成するときに使うWordPress関数をまとめておきます。

single.phpやpage.phpで見かけるget_sidebarはサイドバーを表示する関数です。パラメータを省略して「get_sidebar();」と呼び出すとサイドバーのデフォルトテンプレート「sidebar.php」が読み込まれます。

sidebar.phpとは別のサイドバーテンプレートを読み込みたい場合は「get_sidebar(テンプレート);」のように指定して「sidebar-テンプレート.php」を読み込むことができます。

たとえば、「get_sidebar( 'front' );」と実行すればsidebar-front.phpが読み込まれます。

sidebar.phpに書かれている典型的なコードは次のようになります。Twenty Twelveの例です。

<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>
	<div id="secondary" class="widget-area" role="complementary">
		<?php dynamic_sidebar( 'sidebar-1' ); ?>
	</div><!-- #secondary -->
<?php endif; ?>

is_active_sidebarを使ってサイドバー「sidebar-1」に何かウィジェットが入っているか調べて、何か入っていればdynamic_sidebarで表示しています。

この「sidebar-1」はシステムで管理するサイドバーウィジェットエリアの名称で、テーマの作者がregister_sidebarを使ってfunctions.phpに定義するのが一般的です。Twenty Twelveでもfunctions.phpの241行目以降に次のように記述されています。

register_sidebar( array(
	'name' => __( 'Main Sidebar', 'twentytwelve' ),
	'id' => 'sidebar-1',
	'description' => __( 'Appears on posts and pages except the optional Front Page template, which has its own widgets', 'twentytwelve' ),
	'before_widget' => '<aside id="%1$s" class="widget %2$s">',
	'after_widget' => '</aside>',
	'before_title' => '<h3 class="widget-title">',
	'after_title' => '</h3>',
) );

「Main Sidebar」は翻訳ファイルtwentytwelve-ja.poによって「メインサイドバー」と翻訳されます。結果として、Twenty Twelveで「外観」-「ウィジェット」メニューを開くと「メインサイドバー」が使えるようになっています。

functions.phpに定義されたメインサイドバーが使用可能になっている

functions.phpに定義されたメインサイドバーが使用可能になっている

自作のテーマでサイドバーを使うために

まとめると、自作のテーマでサイドバーを使うには、言うまでもありませんが自分で準備する必要があります。

  • まずは、functions.phpでregister_sidebarを使ってサイドバーエリアを定義します。
  • サイドバーテンプレート(例:sidebar.php、sidebar-abcdefg.php)の中でdynamic_sidebarを使ってサイドバーエリアに格納されたウィジェットを表示します。
  • 固定ページや投稿、アーカイブなどのテンプレートでget_sidebarを使ってサイドバーテンプレートを読み込んで、それぞれのページに必要なサイドバーを表示します。
スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

PHP関数

WordPress

エラーメッセージ

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク