質問: register_sidebar()とget_sidebar()はどのように連携しますか? 免責事項: 私はwpに新しいブランドスパンキングです。 starkers html 5フレームワークテーマ を使用しています。 functions.phpで私はこのコードを見ます:function starkers_widgets_init() { // area 1, located at the top of the sidebar. register_sidebar( array( 'name' => __( 'primary widget area', 'starkers' ), 'id' => 'primary-widget-area', 'description' => __( 'the primary widget area', 'starkers' ), 'before_widget' => '<li>', 'after_widget' => '</li>', 'before_title' => '<h3>', 'after_title' => '</h3>', ) ); // area 3, located in the footer. empty by default. register_sidebar( array( 'name' => __( 'first footer widget area', 'starkers' ), 'id' => 'first-footer-widget-area', 'description' => __( 'the first footer widget area', 'starkers' ), 'before_widget' => '<li>', 'after_widget' => '</li>', 'before_title' => '<h3>', 'after_title' => '</h3>', ) ); // ... more calls to register_sidebar() ... } そしてfooter.phpで私はこのコードを見ます:<?php get_sidebar( 'footer' ); ?> get_sidebar()がその文字列引数をどのようにしてregister_sidebar()で定義されている適切なウィジェットを見つけるのかをどうやって知っているかわかりません。 functions.phpスニペットで私は上に投稿しました。 name、idおよびdescriptionプロパティを除いて、「フッター」についての言及はありません。しかし、get_sidebar()がこれらのプロパティの中で 'footer'を検索することは私には奇妙に思えるでしょう。これは私が求めていることに意味がありますか?足りないものはありますか?私が求めているのは、wpアーキテクチャについてもっと知りたいのですが - カスタムウィジェット領域を定義し、それを特定のページにレンダリングする方法を知りたいからです。トンありがとう。
回答: get_sidebar('name')は、sidebar-name.phpという名前のサイドバーテンプレートを取得します。sidebar-name.php内には、サイドバー用のhtmlと、ウィジェットが移動する場所であるdynamic_sidebar('some-name-hopefully-the-same')への呼び出しがあります。register_sidebar(array(name=>'some-name-hopefully-the-same', ...))はdynamic_sidebarが機能するためのものです。ご覧のとおり、get_sidebar(templatename)はサイドバーテンプレートで使用するためのものです。あなたがそれらを必要としていない場合は、単にあなたのテーマから直接dynamic_sidebar(sidebarname)を呼び出すことができます。