- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
「関数リファレンス/register sidebar」の版間の差分
提供: WordPress Codex 日本語版
< 関数リファレンス
(en:Function Reference/register_sidebar 23:23, 30 December 2009 Ramiy 版を翻訳用にコピー) |
(en:Function Reference/register_sidebar 16:01, 30 June 2015 Ryanshoover 版を反映。) |
||
(3人の利用者による、間の5版が非表示) | |||
1行目: | 1行目: | ||
− | = | + | <div id="Description"> |
+ | == 説明 == | ||
+ | </div> | ||
− | + | [[サイドバー]]をひとつ定義して ID を返します。'widgets_init' アクションで呼び出してください。 | |
− | = | + | <div id="Usage"> |
+ | == 使い方 == | ||
+ | </div> | ||
− | + | <?php register_sidebar( $args ); ?> | |
− | === | + | <div id="Default_Usage"> |
+ | == デフォルトの使い方 == | ||
+ | </div> | ||
− | + | <pre> | |
− | 'name' => | + | <?php $args = array( |
− | 'id' => 'sidebar- | + | 'name' => __( 'Sidebar name', 'theme_text_domain' ), |
− | 'description' => '' | + | 'id' => 'unique-sidebar-id', |
+ | 'description' => '', | ||
+ | 'class' => '', | ||
'before_widget' => '<li id="%1$s" class="widget %2$s">', | 'before_widget' => '<li id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</li>', | 'after_widget' => '</li>', | ||
'before_title' => '<h2 class="widgettitle">', | 'before_title' => '<h2 class="widgettitle">', | ||
− | 'after_title' => '</h2>' ); ?> | + | 'after_title' => '</h2>' ); ?> |
+ | </pre> | ||
− | + | <div id="Parameters"> | |
+ | == パラメータ == | ||
+ | </div> | ||
− | == | + | {{Parameter|args|文字列/配列|'name' と 'id' の値からサイドバーを作成。|オプション}} |
+ | :* <tt>name</tt> - サイドバーの名前(デフォルトは 'Sidebar' を翻訳した文字列と ID の数字)。 | ||
+ | :* <tt>id</tt> - サイドバーの ID - すべて小文字の半角英数字で空白を除く(デフォルトは自動的にカウントアップする数値の ID)。<code>id</code> 引数をセットしなければ、バージョン 4.2 以降は[[Debugging_in_WordPress|デバッグモード]]なら <code>E_USER_NOTICE</code> メッセージが出力される。 | ||
+ | :* <tt>description</tt> - サイドバーの説明テキスト。ウィジェット管理画面に表示される。(バージョン2.9以降)(デフォルト:空文字列) | ||
+ | :* <tt>class</tt> - 管理画面の 外観 > ウィジェットでサイドバーに割り当てられる CSS クラス。このクラスは WordPress のウィジェット管理画面のソースコードのみに出力されます。Web サイトのフロントエンドには出力されません。'''参考:''' 指定したクラス値の前に <code>"sidebar"</code> が付きます。例えば <code>"tal"</code> を指定すると <code>"sidebar-tal"</code> が出力されます。(デフォルト:空文字列) | ||
+ | :* <tt>before_widget</tt> - ウィジェットの直前に出力する HTML テキスト(デフォルト:<code><li id="%1$s" class="widget %2$s"></code>)。'''参考:''' sprintf で変数を置換。 | ||
+ | :* <tt>after_widget</tt> - ウィジェットの直後に出力する HTML テキスト(デフォルト:<code></li>\n</code>)。 | ||
+ | :* <tt>before_title</tt> - タイトルの直前に出力する HTML テキスト(デフォルト:<code><h2 class="widgettitle"></code>)。 | ||
+ | :* <tt>after_title</tt> - タイトルの直後に出力する HTML テキスト(デフォルト:<code></h2>\n</code>)。 | ||
− | + | オプションの <code>$args</code> パラメータは連想配列で、有効なウィジェットのコールバック関数へ第1パラメータとして渡されます。(配列ではなく文字列が与えられると、[http://php.net/manual/ja/function.parse-str.php parse_str()] によって連想配列を生成してから渡されます。)この引数はふつう、ウィジェットとタイトルを囲むテーマ固有の HTML タグを与えるために使います。 | |
− | + | ||
− | : | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <div id="Notes"> | |
+ | == 参考 == | ||
+ | </div> | ||
− | + | * WordPress 3.4.1 以降、いくつか'''避けるべき ID''' があります。[http://wordpress.stackexchange.com/questions/59973/what-is-allowed-as-an-id-argument-in-register-sidebar-args/59985#59985 ここを見てください]。こうした ID を収集するプラグインを作ってリストにしてくれた "toscho" に感謝します。 | |
− | * | + | * サイドバーに一意の名前("Right Sidebar" や "Left Sidebar")を与えたり異なるマークアップが必要だったりするときは、[[関数リファレンス/register_sidebars|register_sidebars()]] で一度に作るのではなくこの関数を使うとよいでしょう。名前は管理画面でのみ表示されますが、各サイドバーにはっきりと名前をつければ、どのサイドバーがどこに表示されるか管理者へヒントを与えることができます。'''参考:''' この名前はサイドバーの内容を保存するインデックスとしても使用されるので、サイドバーの内容は同じ名前を使用する別テーマを選択した時に再利用および上書きされます。 |
− | * | + | * before/after のデフォルト値は、リストを h2 タイトルでマークアップしてサイドバーを生成するテーマを想定しています。これはすべてのテーマに推奨される規約で、このように設計されたテーマなら before/after タグを気にすることなくサイドバーを登録できます。もし何らかの理由でこのようにマークアップしない場合は、サイドバーを登録するときにこれらのタグを指定する必要があります。そのとき id と class 属性はそのままコピーすることを推奨します。そうすれば内部の sprintf 呼び出しが機能して、CSS スタイルが個々のウィジェットに適用されます。 |
− | = | + | <div id="Example"> |
+ | == 用例 == | ||
+ | </div> | ||
− | + | 名前が "Main Sidebar" でタイトルの前後に <h2> と </h2> がついたサイドバーを生成します: | |
<pre> | <pre> | ||
− | register_sidebar(array( | + | add_action( 'widgets_init', 'theme_slug_widgets_init' ); |
− | 'name' => ' | + | function theme_slug_widgets_init() { |
− | 'description' => 'Widgets in this area will be shown on | + | register_sidebar( array( |
− | 'before_title' => '< | + | 'name' => __( 'Main Sidebar', 'theme-slug' ), |
− | 'after_title' => '</ | + | 'id' => 'sidebar-1', |
+ | 'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ), | ||
+ | 'before_widget' => '<li id="%1$s" class="widget %2$s">', | ||
+ | 'after_widget' => '</li>', | ||
+ | 'before_title' => '<h2 class="widgettitle">', | ||
+ | 'after_title' => '</h2>', | ||
+ | ) ); | ||
+ | } | ||
</pre> | </pre> | ||
− | == | + | <div id="Change_Log"> |
+ | == 変更履歴 == | ||
+ | </div> | ||
− | * | + | * [[Version 4.2|4.2.0]] : <code>id</code> 属性がないとき <code>E_USER_NOTICE</code> を起こす。 |
− | * [[Version 2.9|2.9.0]] : | + | * [[Version 2.9|2.9.0]] : <code>description</code> 属性を追加。 |
+ | * [[Version 2.2|2.2.0]] : 新規導入。 | ||
− | == | + | <div id="Source_File"> |
+ | == ソースファイル == | ||
+ | </div> | ||
− | <tt>register_sidebar()</tt> | + | <tt>register_sidebar()</tt> は、{{Trac|wp-includes/widgets.php}} にあります。 |
− | + | <div id="Resources"> | |
+ | == 外部リソース == | ||
+ | </div> | ||
− | + | * [http://generatewp.com/sidebar/ WordPress Sidebar Generator] | |
+ | * [http://justintadlock.com/archives/2010/11/08/sidebars-in-wordpress Sidebars in WordPress] | ||
+ | * [http://www.themelab.com/2008/04/18/see-how-easy-it-is-to-widgetize-wordpress-themes/ See How Easy It Is To Widgetize WordPress Themes] | ||
− | {{ | + | <div id="Related"> |
+ | == 関連項目 == | ||
+ | </div> | ||
+ | |||
+ | {{Sidebar Tags}} | ||
{{Tag Footer}} | {{Tag Footer}} | ||
− | [[Category: | + | {{原文|Function Reference/register_sidebar|152465}} <!-- 16:01, 30 June 2015 Ryanshoover 版 --> |
− | [[Category: | + | |
+ | {{DEFAULTSORT:Register_sidebar}} | ||
+ | [[Category:関数]] | ||
+ | [[Category:ウィジェット]] | ||
+ | [[Category:wp2.2]] | ||
+ | [[Category:wp2.9]] | ||
[[en:Function Reference/register_sidebar]] | [[en:Function Reference/register_sidebar]] | ||
+ | [[pt-br:Function Reference/register_sidebar]] |
2016年2月11日 (木) 23:20時点における最新版
サイドバーをひとつ定義して ID を返します。'widgets_init' アクションで呼び出してください。
使い方
<?php register_sidebar( $args ); ?>
デフォルトの使い方
<?php $args = array( 'name' => __( 'Sidebar name', 'theme_text_domain' ), 'id' => 'unique-sidebar-id', 'description' => '', 'class' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' ); ?>
パラメータ
- args
- (文字列/配列) (オプション) 'name' と 'id' の値からサイドバーを作成。
- 初期値: なし
- name - サイドバーの名前(デフォルトは 'Sidebar' を翻訳した文字列と ID の数字)。
- id - サイドバーの ID - すべて小文字の半角英数字で空白を除く(デフォルトは自動的にカウントアップする数値の ID)。
id
引数をセットしなければ、バージョン 4.2 以降はデバッグモードならE_USER_NOTICE
メッセージが出力される。 - description - サイドバーの説明テキスト。ウィジェット管理画面に表示される。(バージョン2.9以降)(デフォルト:空文字列)
- class - 管理画面の 外観 > ウィジェットでサイドバーに割り当てられる CSS クラス。このクラスは WordPress のウィジェット管理画面のソースコードのみに出力されます。Web サイトのフロントエンドには出力されません。参考: 指定したクラス値の前に
"sidebar"
が付きます。例えば"tal"
を指定すると"sidebar-tal"
が出力されます。(デフォルト:空文字列) - before_widget - ウィジェットの直前に出力する HTML テキスト(デフォルト:
<li id="%1$s" class="widget %2$s">
)。参考: sprintf で変数を置換。 - after_widget - ウィジェットの直後に出力する HTML テキスト(デフォルト:
</li>\n
)。 - before_title - タイトルの直前に出力する HTML テキスト(デフォルト:
<h2 class="widgettitle">
)。 - after_title - タイトルの直後に出力する HTML テキスト(デフォルト:
</h2>\n
)。
オプションの $args
パラメータは連想配列で、有効なウィジェットのコールバック関数へ第1パラメータとして渡されます。(配列ではなく文字列が与えられると、parse_str() によって連想配列を生成してから渡されます。)この引数はふつう、ウィジェットとタイトルを囲むテーマ固有の HTML タグを与えるために使います。
参考
- WordPress 3.4.1 以降、いくつか避けるべき ID があります。ここを見てください。こうした ID を収集するプラグインを作ってリストにしてくれた "toscho" に感謝します。
- サイドバーに一意の名前("Right Sidebar" や "Left Sidebar")を与えたり異なるマークアップが必要だったりするときは、register_sidebars() で一度に作るのではなくこの関数を使うとよいでしょう。名前は管理画面でのみ表示されますが、各サイドバーにはっきりと名前をつければ、どのサイドバーがどこに表示されるか管理者へヒントを与えることができます。参考: この名前はサイドバーの内容を保存するインデックスとしても使用されるので、サイドバーの内容は同じ名前を使用する別テーマを選択した時に再利用および上書きされます。
- before/after のデフォルト値は、リストを h2 タイトルでマークアップしてサイドバーを生成するテーマを想定しています。これはすべてのテーマに推奨される規約で、このように設計されたテーマなら before/after タグを気にすることなくサイドバーを登録できます。もし何らかの理由でこのようにマークアップしない場合は、サイドバーを登録するときにこれらのタグを指定する必要があります。そのとき id と class 属性はそのままコピーすることを推奨します。そうすれば内部の sprintf 呼び出しが機能して、CSS スタイルが個々のウィジェットに適用されます。
用例
名前が "Main Sidebar" でタイトルの前後に <h2> と </h2> がついたサイドバーを生成します:
add_action( 'widgets_init', 'theme_slug_widgets_init' ); function theme_slug_widgets_init() { register_sidebar( array( 'name' => __( 'Main Sidebar', 'theme-slug' ), 'id' => 'sidebar-1', 'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ), 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', ) ); }
変更履歴
ソースファイル
register_sidebar() は、wp-includes/widgets.php
にあります。
外部リソース
関連項目
サイドバー:
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,
関数リファレンス、テンプレートタグ目次もご覧ください。
最新英語版: WordPress Codex » Function Reference/register_sidebar (最新版との差分)