相変わらずサイドバーとフッター。スライド置けるのか?
書き換えまとめ。
手を尽くしたんだって主張(何とか辿り着いた道筋の記録)。
1つ目。
サイドバー(sidebar.php)の書き換え
↓元の記述
<?php dynamic_sidebar( __( 'Sidebar', 'convention' ) ); ?>
デフォルトテーマのひとつ『twentyten』の記述アレンジで、
<?php /** * The Sidebar containing the primary and secondary widget areas. **/ ?> <?php /* When we call the dynamic_sidebar() function, it'll spit out * the widgets for that widget area. If it instead returns false, * then the sidebar simply doesn't exist, so we'll hard-code in * some default sidebar stuff just in case. */ if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?> <?php dynamic_sidebar( __( 'Sidebar', 'convention' ) ); ?> <?php endif; // end primary widget area ?> <!-- #primary .widget-area --> <?php // A second sidebar for widgets, just because. if ( is_active_sidebar( 'secondary-widget-area' ) ) : ?> <div id="footer"> <ul> <?php dynamic_sidebar( 'secondary-widget-area' ); ?> </ul> </div><!-- #secondary .widget-area --> <?php endif; ?>
2つ目。
新規php『sidebar-footer.php』の編集
↓元の記述
<?php <div id="footer" class="clear"> <div id="footer_left"> <ul><?php dynamic_sidebar('footer_left'); ?></ul> </div> <div id="footer_center"><ul><?php dynamic_sidebar('footer_center'); ?></ul></div> <div id="footer_right"><ul><?php dynamic_sidebar('footer_right'); ?></ul></div> <div class="clear"> <small>Copyright © <?php echo date("Y"); ?> <a href="http://calluson.info/"><?php bloginfo('name'); ?></a></small> </div> </div> <?php wp_footer(); ?> </body> </html>
これも『twentyten』の記述アレンジで、
<?php /** * The Footer widget areas. **/ ?> <?php /* The footer widget area is triggered if any of the areas * have widgets. So let's check that first. * * If none of the sidebars have widgets, then let's bail early. */ if ( ! is_active_sidebar( 'footer_left' ) && ! is_active_sidebar( 'footer_center' ) && ! is_active_sidebar( 'footer_right' ) ) return; // If we get this far, we have widgets. Let do this. ?> <div id="footer" class="clear"> <?php if ( is_active_sidebar( 'footer_left' ) ) : ?> <div id="footer_left"> <ul> <?php dynamic_sidebar( 'footer_left' ); ?> </ul> </div><!-- #first .widget-area --> <?php endif; ?> <?php if ( is_active_sidebar( 'footer_center' ) ) : ?> <div id="footer_center"><ul><?php dynamic_sidebar('footer_center'); ?></ul></div> <!-- #second .widget-area --> <?php endif; ?> <?php if ( is_active_sidebar( 'footer_right' ) ) : ?> <div id="footer_right"><ul><?php dynamic_sidebar('footer_right'); ?></ul></div> <!-- #third .widget-area --> <?php endif; ?> </div><!-- #footer-widget-area --> <div class="clear"> <small>Copyright © <a href="http://calluson.info/"><?php bloginfo('name'); ?></a> <?php echo date("Y"); ?></small> </div> </div> <?php wp_footer(); ?> </body> </html>
変更点は、
- 4つあるウィジェットエリアを3つにした。
- if文の中の名前を変更した。
ここまでの変更でサイドバーからフッターメニューを消すことに成功している。
あとは『is_active_sidebar』の関数をどう扱うかでフッター表示ができそうな気配。
3つ目。
『register-sidebar.php』の変更
これは他のテーマだと『functions.php』で処理するようだが、
ウチが選んだテーマはここで。
↓元の記述(ウィジェットエリアを増やす変更が済んだ状態)
<?php register_sidebar(array( 'name' => __('Sidebar', 'convention'), 'before_widget' => '', 'after_widget' => '', 'before_title' => '<div id="sidebar-widget"><div class="sidebar-heading">', 'after_title' => '</div></p>', )); register_sidebar(array('name' => 'footer_left')); register_sidebar(array('name' => 'footer_center')); register_sidebar(array('name' => 'footer_right')); ?>
ここで追加する記述がfunctionで、新しい関数も出ているので、
変更するのここだけでいいのかなあ、という気がしてくる。
<?php function convention_widgets_init() { register_sidebar(array( 'name' => __('Sidebar', 'convention'), 'id' => 'primary-widget-area', 'description' => __( 'The primary widget area', 'convention' ), 'before_widget' => '', 'after_widget' => '', 'before_title' => '<div id="sidebar-widget"><div class="sidebar-heading">', 'after_title' => '</div></p>', )); register_sidebar( array( 'name' => __( 'Footer Left', 'convention' ), 'id' => 'secondary-widget-area', 'description' => __( 'The secondary widget area', 'convention' ), 'before_widget' => '', 'after_widget' => '', 'before_title' => '<div id="sidebar-widget"><div class="sidebar-heading">', 'after_title' => '</div></p>', ) ); register_sidebar(array('name' => 'footer_center')); register_sidebar(array('name' => 'footer_right')); } add_action( 'widgets_init', 'convention_widgets_init' ); ?>
ためしに、フッターひとつだけに記述を増やしたこの状態で上げたら、
サイドバーまで真っ白(驚)。>すぐ戻した
表示されなくなったのは、functionの条件付けが間違ってるのだろう。
セカンダリの記述もまだ怪しい。
スライド置きたいんだよーって場所に、
最後の画像だけぽいっと上げてみた。
本番サイトでカンプ状態の見せ方ってグダグダだなあ、
と反省しつつ、カッコつけてもしょうがないしねと開き直り。
身の丈に合った等身大の実況。