そういえばサイドバーを忘れてました。

作業の記録付けるのも忘れてました。

サイドバーにも二種類あるらしい

静的なものと、動的なものと。

後者が管理画面の外観>ウィジェットから操作できるやつで、前者は単純にテンプレートを読み込むだけ(対応アクションはある)。

静的なサイドバー

get_sidebar()で読み込む。

<?php get_sidebar('hoge'); ?>でsidebar-hoge.phpというテンプレートを探してきて、出力する。

これは簡単だね。ファイルがないとデフォルトのものを読み込むみたい。

動的なサイドバー

何もしないとウィジェット設定の画面でこのテーマではウィジェットは使用できませんと表示されてる。

利用できるようにするには、register_sidebar()を使って「登録」してやる必要があるみたい。

これをfunctions.phpに書いておく。

register_sidebar(array(
  'name' => 'サイドバー',
  'id' => 'sidebar-1',
));
register_sidebar(array(
  'name' => 'フッター',
  'id' => 'footer-1',
));

これでウィジェット設定に出てくる。

使うときはdynamic_sidebar()で読み込む。

<ul id="sidebar">
  <?php dynamic_sidebar( 'sidebar-1' ); ?>
</ul>

出力されるウィジェットはliタグで囲まれるようになるので、それらをulで括る必要がある。これはdynamic_sidebar()のオプションbefore_widget, after_widgetで変更できる。

タイトルはh2で出力されるんだけど、これも同様にbefore_title, after_titleで変える事ができたよ。

強引だけどこんな事もできるね

register_sidebar(array(
  'id' => 'table-1',
  'before_widget' => '<tr>',
  'before_title' => '<th>',
  'after_title' => '</th><td>',
  'after_widget' => '</td></tr>',
));
<table>
  <?php dynamic_sidebar( 'table-1' ); ?>
</table>

↓結果(整形済み)

<table>
  <tr>
    <th>アーカイブ</th>
    <td>
      <ul>
        <li><a href='http://localhost/?m=201204' title='2012年4月'>2012年4月</a></li>
        <li><a href='http://localhost/?m=201203' title='2012年3月'>2012年3月</a></li>
      </ul>
    </td>
  </tr>
</table>

こんな風に使う場面はないと思うけども。

多言語対応

そういえばこれも知りたいところ。明日調べよう。