WordPressによるサイト運営[4-3] [WordPress]
「同じ表示となる部分を共通化する」
4.sidebar.phpのテンプレート化
ウィジェットアリアを2か所設け、1つ目のウィジェットに登録がない場合、固定ページのリスト、月別アーカイブの表示を行う。
①上部サイドバーウィジェットを設定
dynamic_sidebarタグを利用して設置する。ウィジェットが登録されていないときは、テンプレートタグのwp_list_pagesで「ページリスト」、wp_get_archivesで「月刊アーカイブ」を表示する。
<div id="primary" class="widget-area">
<?php if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?>
<aside id="pages" class="widget-container">
<h3 class="widget-title">Menu</h3>
<ul>
<?php wp_list_pages( 'title_li=&depth=2' ); ?>
</ul>
</aside>
<aside id="archives" class="widget-container">
<h3 class="widget-title">Archives</h3>
<ul>
<?php wp_get_archives( 'type=monthly' ); ?>
</ul>
</aside>
<?php endif; ?>
</div>
②下部サイドバーウィジェットを設定
is_active_sidebarタグでウィジェット登録の有無を判別し、ウィジェットの登録が無い場合は、secondaryのボックス自体を非表示とする。
<?php if ( is_active_sidebar( 'secondary-widget-area' ) ) : ?>
<div id="secondary" class="widget-area">
<?php dynamic_sidebar( 'secondary-widget-area' ); ?>
</div>
<?php endif; ?>
③表示
参考資料