- 2009-08-12 (水) 23:49
- 技術
あちこちのブログで間違った事ばかり書いているので混乱させられましたが、結局こうすれば良いと言うのが分かったのでメモ。
トラバ先で大体合ってるんだけど、register_sidebars関数の第一引数についての説明が誤っています。「widget番号」ではなく「widgetの個数」です。なので管理画面に一個多く出てきてしまうんですよね。
・functions.php
if ( function_exists('register_sidebars') ) {
register_sidebars(2,array(
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h2 class="header">',
'after_title' => '</h2>',
));
}
・sidebar.php(index.phpでも良い)
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>
<?php endif; ?>
および
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>
<?php endif; ?>
if (
function_exists('register_sidebars') ) {
register_sidebars(2,array(
'before_widget' => '<div>',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
こんな感じです。register_sidebars(2)だとかregister_sidebars関数を二回呼び出してるのとかありますが、違います。
ただし、2つのサイドバーで別々の体裁にしたい場合や名前をきちんとつけたい場合は、register_sidebars関数の第一引数を1にしたのを2回呼ぶのが適当です。その場合のソースはこんな感じ。
if ( function_exists('register_sidebars') ) {
register_sidebars(1,array(
'name' => '左サイドバー' ,
'before_widget' => '<div class="widget1">',
'after_widget' => '</div>',
'before_title' => '<h2 class="header">',
'after_title' => '</h2>',
));
register_sidebars(1,array(
'name' => '右サイドバー' ,
'before_widget' => '<div class="widget2">',
'after_widget' => '</div>',
'before_title' => '<h2 class="header">',
'after_title' => '</h2>',
));
}
名前がきちんと出ない時は、functions.phpの文字コードとか確認してみると良いです。
また、3つとか4つとか使う時はregister_sidebars関数の第一引数の数字の合計が使えるウィジェットの数を合わせます。全部同じHTMLで、そのテーマを自分で使うならregister_sidebars(4,…..)と呼び出せば良いですし、配布目的など名前をきちんとつけたいならregister_sidebars(1,array(’name’=>’HOGE’……..))を4回呼び出せば良いでしょう。
http://codex.wordpress.org/WordPress_Widgets_Api/register_sidebars にリファレンスもあるので見ると良いと思います。
- Newer: SimplePieでEUC-JPのフィードを読み込むと化ける
- Older: 続・MacBookにSSDを導入してみました。
Comments:0
Trackbacks:2
- Trackback URL for this entry
- http://blog.s-satoshi.net/tech/wordpress%e3%81%ae%e3%82%a6%e3%82%a3%e3%82%b8%e3%82%a7%e3%83%83%e3%83%88%e3%82%92%e8%a4%87%e6%95%b0%e3%81%ab%e3%81%97%e3%81%9f%e3%83%86%e3%83%bc%e3%83%9e%e4%bd%9c%e6%88%90%e3%81%ab%e3%81%a4%e3%81%84/trackback/
- Listed below are links to weblogs that reference
- Wordpressのウィジェットを複数にしたテーマ作成について(の正しい情報) from S.Satoshiのブログ
- pingback from S.Satoshiのブログ - wordpressのウィジェット複数指定をする時に使える良い感じの書き方 10-02-28 (日) 9:26
-
[...] 以前、Wordpressのウィジェットを複数にしたテーマ作成について(の正しい情報)というエントリを書いたわけだが、似たようなことをまた仕事でやっていて気づいたことなどをメモ。 簡 [...]
- pingback from 新Theme ’Light Sky’ « WordPress | autumnsky 10-05-11 (火) 19:58
-
[...] ページで紹介されてる方法ではどれも上手くいかない。 やっと見つけたのが、このサイト。 S.Satoshi のブログ Wordpressのウィジェットを複数にしたテーマ作成について(の正しい情報) [...]