web-dev-qa-db-ja.com

子テーマに新しいサイドバーウィジェット領域を追加する方法

子テーマのヘッダーに新しいサイドバーウィジェット領域を作成したいです。これを行うための最良の方法は何でしょうか。

これは、親テーマのサイドバーの1つのコードです。

<?php
add_action( 'widgets_init', 'ci_widgets_init' );
if ( ! function_exists( 'ci_widgets_init' ) ) :
    function ci_widgets_init() {
        register_sidebar( array(
            'name'          => __( 'Blog Sidebar', 'ci_theme'),
            'id'            => 'blog-sidebar',
            'description'   => __( 'The list of widgets assigned here will appear in your blog posts.', 'ci_theme'),
            'before_widget' => '<aside id="%1$s" class="widget %2$s group">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h3 class="widget-title"><span>',
            'after_title'   => '</span></h3>',
        ) );
    }

nameid、およびdescriptionを変更して、それを自分の子テーマのfunctions.phpファイルに入れるだけでいいですか?

1
jrcollins

まあ、これは私のために働いたものです。私のfunctions.phpファイルに、私は以下のコードを入れました:

function header_widgets_init() {

register_sidebar( array(

    'name' => 'Header Sidebar',

    'id' => 'header_sidebar',

    'before_widget' => '<aside class="widget %2$s">',

    'after_widget' => '</aside>',

    'before_title' => '<h2 class="widget-title">',

    'after_title' => '</h2>',

) );

}

add_action( 'widgets_init', 'header_widgets_init' );

...そして、私のheader.phpファイルで私が使用しました:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('header_sidebar') ) : endif; ?>
2
jrcollins

答えは「はい」です。ウィジェットを子テーマのfunctions.phpファイルに直接追加しても問題ありません。

一部の親テーマでは、子テーマ内に新しい機能を追加する方法(ヘルパー、クラス、特定のデザインパターンなど)についての推奨事項が記載されているため、理想的なアプローチはテーマによって異なります。

あなたのセットアップに関する追加情報を提供できるかどうか私は詳しく説明します。

1
dswebsme