• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「関数リファレンス/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行目:
== Description ==
+
<div id="Description">
 +
== 説明 ==
 +
</div>
  
Builds the definition for a single sidebar and returns the ID.
+
[[サイドバー]]をひとつ定義して ID を返します。'widgets_init' アクションで呼び出してください。
  
== Usage ==
+
<div id="Usage">
 +
== 使い方 ==
 +
</div>
  
%%% <?php register_sidebar( $args ); ?> %%%
+
<?php register_sidebar( $args ); ?>
  
===Default Usage===
+
<div id="Default_Usage">
 +
== デフォルトの使い方 ==
 +
</div>
  
%%% <?php $args = array(
+
<pre>
'name'          => sprintf(__('Sidebar %d'), $i ),
+
<?php $args = array(
'id'            => 'sidebar-$i',
+
'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>
  
(No backslashes before the double quotes, the Codex's PHP highlighter seems to be screwy.)
+
<div id="Parameters">
 +
== パラメータ ==
 +
</div>
  
== Parameters ==
+
{{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>&lt;li id="%1$s" class="widget %2$s"&gt;</code>)。'''参考:''' sprintf で変数を置換。
 +
:* <tt>after_widget</tt> - ウィジェットの直後に出力する HTML テキスト(デフォルト:<code>&lt;/li>\n</code>)。
 +
:* <tt>before_title</tt> - タイトルの直前に出力する HTML テキスト(デフォルト:<code>&lt;h2 class="widgettitle"></code>)。
 +
:* <tt>after_title</tt> - タイトルの直後に出力する HTML テキスト(デフォルト:<code>&lt;/h2>\n</code>)。
  
{{Parameter|$args|string/array|Builds Sidebar based off of 'name' and 'id' values.|optional}}
+
オプションの <code>$args</code> パラメータは連想配列で、有効なウィジェットのコールバック関数へ第1パラメータとして渡されます。(配列ではなく文字列が与えられると、[http://php.net/manual/ja/function.parse-str.php parse_str()] によって連想配列を生成してから渡されます。)この引数はふつう、ウィジェットとタイトルを囲むテーマ固有の HTML タグを与えるために使います。
:* <tt>name</tt> - Sidebar name.
+
:* <tt>id</tt> - Sidebar id.
+
:* <tt>description</tt> - Sidebar description. (Since 2.9)
+
:* <tt>before_widget</tt> - Text to place before every widget.
+
:* <tt>after_widget</tt> - Text to place after every widget.
+
:* <tt>before_title</tt> - Text to place before every title.
+
:* <tt>after_title</tt> - Text to place after every title.
+
  
The optional $args parameter is an associative array that will be passed as a first argument to every active widget callback. (If a string is passed instead of an array, it will be passed through parse_str() to generate an associative array.) The basic use for these arguments is to pass theme-specific HTML tags to wrap the widget and its title.
+
<div id="Notes">
 +
== 参考 ==
 +
</div>
  
== Notes ==
+
* 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" に感謝します。
  
* The only times you might need to call this function instead of [[Function Reference/register sidebars|register_sidebars()]] are when you want to give unique names to sidebars, such as “Right Sidebar” and “Left Sidebar”, or when they should be marked up differently. The names only appear in the admin interface but they are also used as an index for saving the sidebar arrangements. Consequently, sidebars can have their arrangements reused and overwritten when another theme is chosen that uses the same names.
+
* サイドバーに一意の名前("Right Sidebar" や "Left Sidebar")を与えたり異なるマークアップが必要だったりするときは、[[関数リファレンス/register_sidebars|register_sidebars()]] で一度に作るのではなくこの関数を使うとよいでしょう。名前は管理画面でのみ表示されますが、各サイドバーにはっきりと名前をつければ、どのサイドバーがどこに表示されるか管理者へヒントを与えることができます。'''参考:''' この名前はサイドバーの内容を保存するインデックスとしても使用されるので、サイドバーの内容は同じ名前を使用する別テーマを選択した時に再利用および上書きされます。
  
* The default before/after values are intended for themes that generate a sidebar marked up as a list with h2 titles. This is the convention we recommend for all themes and any theme built in this way can simply register sidebars without worrying about the before/after tags. If, for some compelling reason, a theme cannot be marked up in this way, these tags must be specified when registering sidebars. It is recommended to copy the id and class attributes verbatim so that an internal sprintf call can work and CSS styles can be applied to individual widgets.
+
* before/after のデフォルト値は、リストを h2 タイトルでマークアップしてサイドバーを生成するテーマを想定しています。これはすべてのテーマに推奨される規約で、このように設計されたテーマなら before/after タグを気にすることなくサイドバーを登録できます。もし何らかの理由でこのようにマークアップしない場合は、サイドバーを登録するときにこれらのタグを指定する必要があります。そのとき id class 属性はそのままコピーすることを推奨します。そうすれば内部の sprintf 呼び出しが機能して、CSS スタイルが個々のウィジェットに適用されます。
  
== Example ==
+
<div id="Example">
 +
== 用例 ==
 +
</div>
  
This will create a sidebars named "RightSideBar" with &lt;h1&gt; and &lt;/h1&gt; before and after the title:
+
名前が "Main Sidebar" でタイトルの前後に &lt;h2&gt; &lt;/h2&gt; がついたサイドバーを生成します:
  
 
<pre>
 
<pre>
register_sidebar(array(
+
add_action( 'widgets_init', 'theme_slug_widgets_init' );
'name' => 'RightSideBar',
+
function theme_slug_widgets_init() {
'description' => 'Widgets in this area will be shown on the right-hand side.',
+
    register_sidebar( array(
'before_title' => '<h1>',
+
        'name' => __( 'Main Sidebar', 'theme-slug' ),
'after_title' => '</h1>'));
+
        '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>
  
== Change Log ==
+
<div id="Change_Log">
 +
== 変更履歴 ==
 +
</div>
  
* Since: [[Version 2.2|2.2.0]]
+
* [[Version 4.2|4.2.0]] : <code>id</code> 属性がないとき <code>E_USER_NOTICE</code> を起こす。
* [[Version 2.9|2.9.0]] : Added <code>description</code> property
+
* [[Version 2.9|2.9.0]] : <code>description</code> 属性を追加。
 +
* [[Version 2.2|2.2.0]] : 新規導入。
  
== Source File ==
+
<div id="Source_File">
 +
== ソースファイル ==
 +
</div>
  
<tt>register_sidebar()</tt> is located in {{Trac|wp-includes/widgets.php}}.
+
<tt>register_sidebar()</tt> は、{{Trac|wp-includes/widgets.php}} にあります。
  
{{原文|Function Reference/register_sidebar|81535}}<!-- 23:23, 30 December 2009 Ramiy 版 -->
+
<div id="Resources">
 +
== 外部リソース ==
 +
</div>
  
== Related ==
+
* [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]
  
{{Widget Tags}}
+
<div id="Related">
 +
== 関連項目 ==
 +
</div>
 +
 
 +
{{Sidebar Tags}}
  
 
{{Tag Footer}}
 
{{Tag Footer}}
  
[[Category:Functions]]
+
{{原文|Function Reference/register_sidebar|152465}} <!-- 16:01, 30 June 2015 Ryanshoover 版 -->
[[Category:Widgets]]
+
 
 +
{{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>',
    ) );
}

変更履歴

  • 4.2.0 : id 属性がないとき E_USER_NOTICE を起こす。
  • 2.9.0 : description 属性を追加。
  • 2.2.0 : 新規導入。

ソースファイル

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最新版との差分