サイドバーを登録する際には、各ウィジェットを<aside>
で囲む必要があります。 カレンダーや検索のような作り付けのウィジェットを使うとき、これはうまく働きます、しかし、私が自分で作成したウィジェットを追加するとき、終わりに<aside>
は出力されていません。したがって、私は次のような構造になっています。
<widgets-area>
<custom-widget>
<custom-widget>
</custom-widget>
</custom-widget>
</widgets-area>
次のようになっているはずです。
<widgets-area>
<custom-widget>
</custom-widget>
<custom-widget>
</custom-widget>
</widgets-area>
register_sidebar
register_sidebar( array(
'name' => __( 'Sidebar', 'mysite' ),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widgets__widget widgets__widget--%2$s">',
'after_widget' => '</aside>',
'before_title' => '<h1 class="widgets__widget__title">',
'after_title' => '</h1>',
) );
私のカスタムウィジェットのコードにはecho $args['before_widget']
とecho $args['after_widget']
の両方が含まれています。これらはregister_sidebar()
で宣言された 'before_widget'および 'after_widget'コードをエコーアウトするために使用されると思います。
カスタムウィジェットが正しく閉じられませんが、組み込みのウィジェットが閉じられないのはなぜですか。何が足りないの?構造以外は、カスタムウィジェットは正しく機能しています。
ウィジェット内のwidget($args)
を上書きしたので、before_widget
はエコーされますがafter_widget
はエコーされません。
私はwidget($args)
変数とそれへのすべての参照の名前を変更し、それからプラグインは期待通りに機能しました。