WordPressのウィジェットってとても便利ですよね。ドラッグ&ドロップで手軽に表示を並べ替えることもできるし管理もしやすいです。そんなウィジェットを複数表示させるためのやり方をご紹介します。
[ads_center]
register_sidebarとdynamic_sidebar
まずはfunctions.phpに複数のウィジェットを対応させます。
if(function_exists('register_sidebar')) { register_sidebar( array( 'name' => 'ウィジェット1', 'id' => 'sidebar1', 'before_widget' => '<div>', 'after_widget' => '</div>', 'before_title' => '<h3>', 'after_title' => '</h3>' )); register_sidebar( array( 'name' => 'ウィジェット2', 'id' => 'sidebar2', 'before_widget' => '<div>', 'after_widget' => '</div>', 'before_title' => '<h3>', 'after_title' => '</h3>' )); }
ここで重要なのは以下の2点。
- name
- id
nameに指定した名前が、ウィジェットの名前になります。
idは、このあとウィジェットを表示する際にどのウィジェットを出力するかを指定する時に使います。以下、ウィジェットを表示したいテーマファイル内での記述です。
<!-- ウィジェット1 --> <?php if(!function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar1')): ?> <p>ウィジェットが設定されていない場合、ここが表示されます。</p> <?php endif; ?> <!-- ウィジェット2 --> <?php if(!function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar2')): ?> <p>ウィジェットが設定されていない場合、ここが表示されます。</p> <?php endif; ?>
dynamic_sidebarの引数に、先程の表示したいウィジェットのidを指定します。
これで、管理画面のウィジェットのページに行くと、ウィジェット1とウィジェット2という2つのウィジェットが表示されるようになります。
複数のウィジェットを作ることで、例えばサイドバーにはウィジェット1を、フッターにはウィジェット2をといったことも可能になるので、管理を簡単にしたい場合にはとても有効ですね。
さらに追加したい場合には同様にサイドバー3、サイドバー4…と追加していくこともできます。