子テーマでサイドバーを最後に追加する

子テーマでサイドバーを最後に追加する

WordPressでテーマをカスタマイズする場合は子テーマを使うのが一般的ですが、子テーマにおいてサイドバーを追加するコードを書く場合に注意する必要があります。

通常はテーマのfunctions.phpにregister_sidebar関数を書いてサイドバーを追加すると思いますが、子テーマのfunctions.phpの後に親テーマのfunctions.phpが読み込まれるため、親テーマが定義するサイドバーより先に子テーマのサイドバーが定義されます。もし親テーマの方で登録した順番を指定してサイドバーを呼び出している場合、呼び出されるサイドバーがずれる問題が起こります。

そのような場合は、子テーマのfunctions.phpでフックを使って親テーマがサイドバーを追加した後に子テーマのサイドバーを追加するようにすることで問題を回避できます。

add_action( 'init', 'add_sidebar' );
function add_sidebar() {
    register_sidebar();
}

登録したサイドバーを呼び出すにはdynamic_sidebar関数を使用します。