Register_sidebar()とget_sidebar()はどのように連携しますか?
-
16-10-2019 - |
質問
免責事項: 私はWPに新しくスパンキングするブランドです。
私はを使用しています Starkers HTML5フレームワークテーマ. 。の中に 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()
それらのプロパティ内で「フッター」を検索します。
これは私が尋ねていることは理にかなっていますか?不足している作品はありますか?
私が尋ねている理由は、WPアーキテクチャについてもっと知りたい - カスタムウィジェット領域を定義し、特定のページでレンダリングする方法を知りたいからです。
トンありがとう。
解決
あなたはただ電話します get_sidebar()
から index.php
テーマファイルをロードします sidebar.php
.
register_sidebar()
, 一方、プラグインなどがあなたにコンテンツを動的に追加したいウィジェットに使用されます sidebar.php
テーマがサポートされている場合。
あなたの場合、呼ばれるファイルがありますか sidebar-footer.php
あなたのテーマのディレクトリで?
他のヒント
私は気にしたことがありません get_sidebar()
. 。代わりに使用するだけです dynamic_sidebar()
. 。あなたはそれをこのように呼ぶでしょう:
dynamic_sidebar('first-footer-widget-area');
そして、それはサイドバー全体の世話をします。ファイルインクルージョンはなく、雑然としたテーマフォルダーはありません。 5つの異なるサイドバーが必要な場合は、ファイルを追加せず、追加の機能のみを追加します functions.php
.
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)
あなたのテーマから直接。
get_sidebar('footer')
ロードしようとします sidebar-footer.php
アクティブなテーマから。 Starkersはこのファイルを提供します。小切手 starkers/sidebar-footer.php
そして、物事は明らかになるはずです。