Home > | >

WordPressのテーマ、wp.Vicunaをウィジェット (widget)追加に対応させた

2009年03月19日 (木) [Read Comment7個のコメント] [3,442 views] tweebuzz icon Hatena icon
この記事を読むのに必要な時間の目安: 6分ぐらい →→ あとで読む

基本からしっかりわかる WordPress 2.7 カスタマイズブック (Web Designing BOOKS)

当ブログで使用しているWordPressテーマ『wp.Vicuna』は、デザイン性が高く且つXHTML1.0 Strict DT準拠やSEOにも考慮した素晴らしいテーマなんだけど、残念ながらサイドバーウィジェット(widget)に対応していないんだよね。

ウィジェット対応などカスタマイズ性を向上させた別テーマ『wp.Vicuna Ext.』なんてのもあるんだけど、これからExtに乗り換えるのはちょっと大変。そんなワケでwp.Vicunaのサイドバーをウィジェット (widget)追加に対応させてみたので、手順をメモっておきます。

やること

サイドバーのウィジェット対応については「Widgetizing Themes - WordPress Codex 日本語版」に書いてあるんだけど、英語を日本語訳したまどろっこしい文章で理解するのに時間が掛かりました。

で、ガッとまとめるとやることは2つだけです。

  1. sidebar.phpでdynamic_sidebar関数を呼び出し、ウィジェットを表示させる。
  2. functions.phpでregister_sidebar関数を呼び出し、ウィジェットの表示形式を定義する。

以降、詳しい手順について説明していきます。

sidebar.phpの編集作業

ウィジェットを表示させたい場所に以下の行を挿入します。ウチのサイトでは「<dl class="navi">」の直後に追加しています。

PHP:
  1. <?php if ( function_exists('dynamic_sidebar') ) dynamic_sidebar(); ?>

この内容を日本語で言うと「もしdynamic_sidebar関数が用意されていたら、dynamic_sidebar関数を実行してね」になります。

WordPress Codexでは「既存のサイドバー」と「サイドバーウィジェット群」のどちらかしか表示しないようにしていますが、ウィジェットって突っ込んだカスタマイズが出来なくて使いにくいんだよね。用意されたモノを使うだけならお手軽で良いんだけど、おいらは基本的に自分でコードを書いて細部までカスタマイズしたい。

だからウィジットを表示させつつ、自前のサイドバーも表示するようにしました。この方法だと自前サイドバーとウィジェットで表示内容が被ることがあるけど、その場合はsidebar.phpの該当箇所を増減させて対応してください。

functions.phpの編集作業

functions.phpの良い感じの場所に以下の内容を記述して、ウィジェットの表示形式を定義します。うちでは「load_textdomain云々」書いてある下あたりに書きました。

注意:なぜか「<」が正しく表示されないので、日本語の「<」を使用しています。4箇所ある「<」を、自分で「<」に書き換えてください。

PHP:
  1. if ( function_exists('register_sidebar') )
  2.     register_sidebar(array(
  3.         'before_widget' => "",
  4.         'after_widget' => "\n\t\t</dd>\n",
  5.         'before_title' => "\t\t<dt>",
  6.         'after_title' => "</dt>\n\t\t<dd>\n\t\t\t",
  7.     ));

このあたりがウィジェット対応のキモかな。register_sidebar関数の詳細は『WordPress Widgets Api/register sidebar « WordPress Codex』に英語で書いてある。これを超訳すると各ウィジェットの前後に入れるHTMLコード類を定義しろってこと。

で、Vicunaのサイドバーは「dl,dt,dd」を使った定義リスト表示を行っているので、ウィジェットの表示もそれに併せています。register_sidebar関数に渡してる値は、変数名を見ればなんとなく想像付くでしょ?要は「タイトルの前後に何て書く?」とか「ウィジェットの前後に何て書く?」ってのを渡して上げれば良いだけね。

ちなみにfunctions.phpってのはプラグイン用の関数群みたいなモンで、WordPressのロード時に呼び出されるらしいよ。

実際にウィジェットを表示させてみる

管理画面→外観→ウィジェットを開いて、使いたいウィジェットを追加してください。必要なウィジェットを追加しおわったら「変更を保存」ボタンを押すことを忘れずに。

最後に実際にサイドバーを表示させて、思ったように表示されているか確認してください。なんかダブったり表示が崩れたりするかも知れないけど、sidebar.phpやCSSを調整すればきっとうまく行くと思うよ!


参考リンク:Vicuna - WordPress テーマ
参考リンク:ma38su.org - wp.Vicuna Ext
参考リンク:Widgetizing Themes - WordPress Codex 日本語版
Related Posts with Thumbnails

現在のコメント: 7RSS icon


  1. KOBAYASHI Hideto
    2009/03/19(木) 2:39
    WordPress

    当ブログで使用しているWordPressテーマ『wp.Vicuna』は、デザイン性が高く且つXHTML1.0 Strict DT準拠やSEOにも考慮した素晴らしいテーマなんだけど、残念ながらサイドバーウィジェット(widge.. http://tinyurl.com/c7tep3


  2. masa
    2009/05/03(日) 0:23
    JAPAN Windows Mozilla Firefox

    wp.Vicuna を無事ウィジットに対応。
    表示も崩れず、大変参考になりました。
    ありがとうございます!


  3. Toshiaki Yamada
    2010/01/13(水) 4:14
    WordPress

    おーすごい!できた~ http://bit.ly/7oLBrR


  4. Nagatoshi Yasui
    2010/02/11(木) 15:15
    WordPress

    ブログで使用しているWordPressテーマ「wp.Vicuna」は、サイドバーウィジェット(widget)未対応。そこを何とかと思い…探し当てました→http://bit.ly/aGCI6z。おかげでうまくいきました→http://bit.ly/bbkDHJ


  5. にとろ
    2010/02/25(木) 16:30
    WordPress

    WordPressのテーマ、wp.Vicunaをウィジェット (widget)追加に対応させた http://www.hide10.com/?p=12031


  6. De La Costa
    2010/03/08(月) 5:16
    JAPAN Windows Mozilla Firefox

    わーすごい!素晴らしすぎます!Vicuna は初めてでこういうのを探してました、ありがとうございます★

コメントをどうぞ







メールアドレスが未記入だったり、一度もコメントしたことのないメールアドレスの場合、管理者に承認されるまでコメントが表示されません。
アバターをオリジナル画像に変更したい場合は、Gravatarサービスに登録してください。

現在のトラックバック数 : 9

trackback from SHINIO 09-06-15 (月) 1:11

と思ったらこれ発見http://www.hide10.com/?p=12031

pingback from Makiのメモ - とりあえず 09-08-16 (日) 22:24

[...] その後さらに色々調べて、結局wp.Vicunaさんの元々のテーマをウィジェット対応(Hinemosuすることで解決しました。あー疲れた。 [...]

trackback from nBLO 09-11-01 (日) 0:25

ウィジェットを使えるようにする

ウィジェットの実装
サイドバーのコンテンツを、好きなように取捨選択できるウィジェットですが、もし、人に使ってもらうものを作る場合やはり必要になるだろうと思い実装してみた…

pingback from route weblog - wordpress導入にあたっ... 09-12-03 (木) 22:49

[...] ■WordPressのテーマ、wp.Vicunaをウィジェット (widget)追加に対応させた – Hinemosu http://www.hide10.com/?p=12031 [...]

pingback from ウィジェットを使えるようにする 09-12-13 (日) 8:39

[...] わかりやすく説明されてたので http://www.hide10.com/?p=12031 から抜粋 [...]

pingback from こころの鏡 - テーマ変更と最近追加したプラグイン 10-03-06 (土) 15:20

[...] トが使えるようになります。こちらを参考にさせて頂きました。 [...]

pingback from SK. - WP導入備忘録 の件 10-03-13 (土) 14:39

[...] ●wp.Vicunaをウィジェット (widget)追加に対応させた http://www.hide10.com/?p=12031 [...]

pingback from WPテーマ « ponnao-clip 10-03-18 (木) 12:33

[...] こちらにwp.Vicunaの詳しい歴史が書いてありました! がんばれば、Vicunaにもウィジェット追加できるらしい。 ★WordPressのテーマ、wp.Vicunaをウィジェット (widget)追加に対応させた – Hine… [...]

pingback from 人気記事表示プラグイン『Wordpress Popular ... 10-07-15 (木) 20:17

[...] WordPressのテーマ、wp.Vicunaをウィジェット (widget)追加に対応させた – Hinemosu [...]

トラックバックアドレス

Trackback URL for this entry

Home > | > WordPressのテーマ、wp.Vicunaをウィジェット (widget)追加に対応させた

このページの先頭へ戻る