3のサイドバーにウィジェットを表示するカスタマイズです。ネタ的にはかなり出遅れてる感じですが、なかなか仕組みが理解できなかったので、WordPressテーマを変更したときの備忘録として残しておきます。ここでは、ウィジェットが適用されていない2つのサイドバー(sidebar.php/sidebar2.php)にウィジェットを表示する例を説明します。カスタマイズしたいテーマにサイドバーが1つしかない場合、あるいは3つ以上ある場合でも手順はたいして変わりません。1.sidebar.phpの変更まず、サイドバー用のテーマファイルsidebar.phpがあるとします。</li></ul>これにウィジェットを表示できるようにするには、一番外側のul要素の開始タグの直後からul要素の終了タグの直前までを以下の2行で括ります。?>追加した行にある関数dynamic_sidebarの機能は次の通りです(ここ重要)。「primary-widget-area」というウィジェットエリアにウィジェットが設定されていれば、括っている内容の代わりに、そのウィジェットを表示する。「primary-widget-area」というウィジェットエリアにウィジェットが設定されていなければ、括っている内容をそのまま表示する。以下に、ウィジェットエリアの状態と、対応するサイドバーの表示内容を示します。厳密には画面はsidebar2.phpのものですが、イメージということで。ウィジェットエリアにウィジェットが設定されている状態ウィジェットが設定されているときのサイドバーウィジェットエリアにウィジェットが設定されていない状態ウィジェットが設定されていないときのサイドバー(sidebar.phpの内容を表示)関数dynamic_sidebarの引数「primary-widget-area」という名称は、ウィジェットを表示する位置を特定するもので、任意の名称で構いません。変更後のsidebar.phpは次のようになります。追加部分を青色で示しています。?></ul>2.sidebar2.phpの変更サイドバーが複数ある場合も、同様の設定を行います。1項と異なるのは、関数dynamic_sidebarの引数「primary-widget-area」を「secondary-widget-area」にしている点です。以下は、もうひとつのサイドバー(sidebar2.php)に設定した例です。?></ul>つまりサイドバーごとに「primary-widget-area」「secondary-widget-area」の部分の名称を変えれば、いくつでも設定できます。sidebar.php(sidebar2.php)の設定はこれだ終わりです。ちなみに、sidebar.phpに記述している中に表示させたいものがあれば、その部分をif文で括らないようにすればOKです。上のsidebar2.phpでカレンダーだけを常に表示させたい場合は次のようにします。3の場合、1項・2項の設定をおこなって「twentyten」テーマの中にあるfunction.phpを自分のテーマディレクトリにコピーすれば、ウィジェット機能はそのまま使えます。その場合、dynamic_sidebarの引数「primary-widget-area」「secondary-widget-area」の名称は変更しないでください。「twentyten」テーマのfunction.phpには、次の4つのウィジェットエリアが用意されています。Area「twentyten」テーマのfunction.phpをそのまま使うと、カスタムメニューやカスタム背景なども同時に使えるかもしれません。4.ウィジェットエリアの定義(自前で作りたい場合)自前でウィジェットエリアの定義を作るには、自分のテーマディレクトリ配下に空のfunction.phpを作り、次の内容を設定してください。ここでは当ブログで定義しているもの(ほとんどfunction.phpの流用ですが)からウィジェットに関連する部分のみをそのまま掲載しておきます。);一番下にあるadd_actionで、ウィジェット管理画面を初期化するフック(widgets_init)を定義し、関数koikikukan_widgets_initを起動します。);関数koikikukan_widgets_initの中では、関数register_sidebarを2回起動しています。2回起動するのは、サイドバーに追加したdynamic_sidebarに対応させるためです。register_sidebarの引数にあるidの値が1項・2項で定義した「primary-widget-area」「secondary-widget-area」と一致させます。);}関数register_sidebarは、管理画面のウィジェットエリアを作り、そこにドラッグ&ドロップされるウィジェットのテンプレートを定義する機能があります。register_sidebarの引数に、作りたいウィジェットのスケルトン((X)HTMLマークアップ部分)を定義します。'&lt;/h2&gt;',それぞれの意味は次の通りです(公式サイトより)。),はローカライズを行っていますが、次のように直接日本語を書いても構いません。その場合はfunction.phpの文字エンコーディングはUTF-8で保存してください。'ほげほげ',「カテゴリ」ウィジェットは次のようなマークアップで出力されます。</ul></li>以上です。これでデフォルトで用意されているウィジェットが利用できるようになります。3でウィジェットを作るカスタマイズ」で紹介します。*必須(非表示)URL(U):情報を保存する?コメントへの返信ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。すべてのご質問にはお答えできない可能性があります。Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。