WordPressの2.3からはサイドバーをウィジェットとして、管理画面から拡張可能みたい。ただ、それには、テーマのsidebar.phpがちゃんと対応してないといけないらしい。

対応させ方については、

Widgetizing Themes

に書いてあった。

そもそも、デフォルトでのサイドバーの書式は、

<ul id="sidebar">
 <li id="タイトル">
  <h2>タイトル</h2>
  内容
  </li>
 <li id="タイトル">
  <h2>タイトル</h2>
  内容
 </li>
</ul>

らしい。ただ、Caskのテーマはulとliで作ってなくって、

<div id="sidebar">
 <div class="title"><h2>タイトル</h2></div>
  内容
 <div class="title"><h2>タイトル</h2></div>
  内容
</div>

みたいな感じ。css書き換えるのが面倒なんで、ulとか使いたくないわけで…。

そこで、Widgetの設定の方を書き変えちゃう。方法は、

functions.php*というファイル(themeの中に作っちゃって構わないみたいです)に

< ?php
if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<div class="title"><h2>',
        'after_title' => '</h2></div>',
    ));
?>

みたいに書いて保存&アップロード。

ちなみに、

before_widget
before_titleタイトルafter_title
after_widget

みたいな書式。これに従って、自分のテーマに合わせてregister_sidebarの引数に配列として放り込めばOK。

さらに、テーマのフォルダにあるsidebar.phpに、

<div id="sidebar">
< ?php if ( !function_exists('dynamic_sidebar')
        || !dynamic_sidebar() ) : ?>
 <div class="title"><h2>タイトル</h2></div>
 内容
 <div class="title"><h2>タイトル</h2></div>
 内容
 …
< ?php endif; ?>
</div>

みたいにして、

< ?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar() ) : ?>

< ?php endif; ?>

を書いとけばよさげ。


注: Aug 28, 2008 訂正

Comments

comments

Powered by Facebook Comments

Comments are closed.