0

私は、クライアントの既存のサイト用の簡単な Wordpress テーマを作成するために持ち込まれました。既存のサイトの CSS と JS、およびスケルトン HTML を使用して、一部を除いてほぼすべての方法でテーマを機能させることができました。まず第一に、サイドバーを「ウィジェット化」できないようです。

ウィジェットの登録を試みる前のサイドバーの HTML は次のとおりです。

<div class="wms-column wms-column-nav">
    <div class="wms-column-nav-body">
      <h2><a href="/">Blog</a></h2>
    </div>
</div>

内側の div 内に html を追加することはできますが、外側の 2 つの div を変更することはできません。彼らは残らなければなりません。

http://codex.wordpress.org/Widgetizing_Themesを読み、いくつかの例を試した後、エラーしか表示されません。当然、ウィジェット エリアは [ダッシュボード] > [外観] に表示されません。

上記のコードを、ウィジェットを受け入れるサイドバーとして機能するように変換するにはどうすればよいですか? id="sidebar" は必要ですか? また、タイトルは必要ですか?Codex ページは、タイトルのフォーマット方法が全体的なアプローチに依存していることを暗示しているようです (例: div とリスト)。ウィジェットがコンテンツを追い出すために何度も使用するテンプレートを作成しているという印象を受けました。ウィジェットを配置する場所をWPに伝えているだけだと思いました(そして、それらのコンテンツ/フォーマット/複雑さはすべてウィジェットのコードで処理されていました)。

4

1 に答える 1

1

テーマのウィジェット化は、基本的に 2 つのステップです。

  1. サイドバーを登録する
  2. 登録したサイドバーをテーマに追加

functions.php

のコーデックスページからregister_sidebar;

 register_sidebar(array(
   'name' => __( 'Right Hand Sidebar' ),
   'id' => 'right-sidebar',
   'description' => __( 'Widgets in this area will be shown on the right-hand side.' ),
   'before_title' => '<h1>',
   'after_title' => '</h1>'
 ));

テーマ テンプレートで

への呼び出しを追加しますdynamic_sidebar。これはおそらくsidebar.php

<div class="wms-column wms-column-nav">
    <div class="wms-column-nav-body"><?php
      dynamic_sidebar( 'right-sidebar' ); // your widgets will go here ?>
    </div>
</div>

で使用されるパラメーターは、サイドバーを登録するときに使用されるものとdynamic_sidebar一致することに注意してください。idそれだけです。もちろん、ハードコーディングされたフォールバック サイドバーや複数のサイドバーなど、実装はより複雑になる可能性がありますが、それは基本的な開始パックです。

于 2013-02-15T00:19:45.843 に答える