SSブログ

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; ?>

③表示

image

参考資料


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。