- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
サイドバー
この項目「サイドバー」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。
サイドバーとは バージョン 2.2 で導入されたテーマ機能です。テーマによって提供される基本的には縦方向のカラムで、Web ページのメインコンテンツ以外の情報を表示します。テーマにはふつうコンテンツの右または左側に最低1つのサイドバーが含まれています。サイドバーにはふつうサイトの管理者がカスタマイズできるウィジェットが配置されます。
関数リファレンス
|
|
サイドバーの定義
下記の関数はサイドバーの機能をテーマへ加えるのに用いられます。
複数サイドバーの登録
register_sidebars( $count, $args );
現在のテーマで使用するひとつまたは複数のサイドバーを登録します。多くのテーマはサイドバーがひとつだけです。このため $count パラメータはオプションで、デフォルト値は 1 です。
$args パラメータは register_sidebar() へ渡されます。値は register_sidebar() が定める形式に従いますが、名前だけは例外です。もし $count が複数なら sprintf() を使ってサイドバー毎に数字を前か後につけます。
例えば次のコードは名前が「Foobar 1」と「Foobar 2」のサイドバーを作ります:
register_sidebars( 2, array( 'name' => 'Foobar %d' ) );
1個のサイドバーを登録
register_sidebar( $args );
オプションの $args パラメータは連想配列で、すべての有効なウィジェットのコールバックへ第1引数として渡されます。(もし配列の代わりに文字列が指定されると、parse_str() によって連想配列を作ってから渡されます。)この引数の基本的な用途はウィジェットとそのタイトルを囲むためにテーマ独自の HTML タグを渡すというものです。デフォルト値を示します:
$args = array( 'name' => sprintf( __( 'Sidebar %d' ), $i ), 'id' => "sidebar-$i", 'description' => '', 'class' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => "</li>\n", 'before_title' => '<h2 class="widgettitle">', 'after_title' => "</h2>\n", );
register_sidebars() の代わりにこの関数を呼ぶ必要があるかもしれません。それは例えばサイドバーに「右サイドバー」と「左サイドバー」のようにユニークな名前をつけたい場合や、違うマークアップを行いたい場合です。管理画面に表示される名前はサイドバーを配置する時にインデックスとして使われます。参考:サイドバーの配置は同じサイドバー名を使う別のテーマを選んだ時に上書きされます。
before(前置タグ)と after(後置タグ)のデフォルト値は、「h2」でタイトルをつけたリストとしてマークアップされたサイドバーを生成するテーマを想定しています。これはテーマに対して推奨される慣習です。この構造を使って作られたテーマは前置および後置タグに関する問題なしに簡単にサイドバーを登録できます。テーマがこの形のマークアップを行えない場合、これらのタグはサイドバーを登録する時に必ず指定しなければなりません。id と class の属性値は一字一句そのままコピーすることを推奨します。そうすることで内部の sprintf 呼び出しが正しく動作して個別のウィジェットへ CSS スタイルを適用することができます。
テーマにサイドバーを表示する
dynamic_sidebar( $sidebar );
この関数は有効なウィジェットのコールバックを順に呼び出します。コールバックはサイドバーのマークアップを出力します。サイドバーが2つ以上あるなら、出力したいサイドバーの名前または番号をこの関数へ指定します。この関数は成功すれば true、失敗すれば false を返します。
戻り値は静的サイドバーを表示するかどうか決定するのに使うべきです。こうするとウィジェットプラグインが有効でない時もテーマが綺麗に見えます。致命的なエラーを防ぐための健全性テストを加えれば、次のコードがこの関数の推奨される使い方になります:
<ul id="sidebar"> <?php if ( ! dynamic_sidebar() ) : ?> <li>{静的サイドバー項目 No.1}</li> <li>{静的サイドバー項目 No.2}</li> <?php endif; ?> </ul>
サイドバーを番号で登録してあった場合、番号で指定すべきです。登録時に名前をつけてあったら、その名前を使ってサイドバーを取得します。
リソース
関連項目
サイドバー:
is_active_sidebar(),
is_dynamic_sidebar(),
dynamic_sidebar(),
register_sidebars(),
register_sidebar(),
unregister_sidebar(),
wp_register_sidebar_widget() / en,
wp_unregister_sidebar_widget() / en,
wp_get_sidebars_widgets() / en,
wp_set_sidebars_widgets() / en,
テーマサポート:
add_theme_support(),
remove_theme_support(),
current_theme_supports()
テーマ機能:
サイドバー,
ナビゲーションメニュー,
投稿フォーマット,
投稿サムネイル,
カスタム背景,
カスタムヘッダー,
自動フィードリンク,
html5,
コンテンツ幅,
editor-style
最新英語版: WordPress Codex » Sidebars (最新版との差分)