私は "bibliographies"と呼ばれるカスタム投稿タイプとそれに対応するarchive-bibliographies.phpファイルを使って投稿のリストを表示します。このページに、このページに固有のサイドバーを追加したいので、先に進んで次のような新しいサイドバーを登録しました。
// Register Bibliography Sidebar
function bibliography_sidebar() {
register_sidebar( array(
'name' => 'bibliography_sidebar',
'id' => 'bibliography_sidebar',
'description' => __( 'Widgets in this area will be shown on the bibliography sidebar.', 'theme-slug' ),
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="bibliography_sidebar">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'bibliography_sidebar' );
次に、archive-bibliopgraphies.phpファイルで、サイドバーを次のように呼び出してみます。
get_sidebar('bibliography_sidebar');
管理者側に新しいサイドバーが表示され、そこにウィジェットを追加することができますが、フロントエンドに表示されるのはメインのサイドバーだけで、「bibliography_sidebar」サイドバーはありません。
私がここで見逃しているアイデアはありますか?
get_sidebar($name)
はテンプレートsidebar-{$name}.php
をロードします。 sidebar-{$name}.php
が存在しない場合は、sidebar.php
のロードにフォールバックします。
特定のサイドバーを作成するには、このコードを使ってテーマにファイルsidebar-bibliography_sidebar.php
を作成します。
<?php
if ( is_active_sidebar( 'bibliography_sidebar' ) ) {
dynamic_sidebar( 'bibliography_sidebar' );
}