web-dev-qa-db-ja.com

子テーマ - 特定の場所に新しいウィジェットを追加する方法?

私は周りを見回しています、そして私は少し混乱していて、そしてこの質問に対する答えをこれまで見つけることができませんでした。

私は無地の新しい子供用の皮を作りました。私の子供の肌は2つのファイルしかありませんstyle.css

/*
 Theme Name:   My theme child colormag
 Description:  My child modification from Colormag theme
 Author:       PalaNolho
 Template:     colormag
 Version:      1.0.0
*/

function.php

<?php
/* 
 * Child theme functions file
 * 
 * Your functions php code starts here just before ?>
 */

add_action( 'wp_print_styles', 'enqueue_parent_styles' ); //wp_enqueue_scripts
function enqueue_parent_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}


function my_register_widget() {
    /* Register the 'primary' sidebar. */
    register_sidebar(
        array(
            'id' => 'headerimagewidget',
            'name' => __( '(my) Widget over Header Image' ),
            'description' => __( 'My widget to be displayed over the header image.' ),
            'before_widget' => '<div id="%1$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3 class="widget-title">',
            'after_title' => '</h3>'
        )
    );
    /* Repeat register_sidebar() code for additional sidebars. */
}

add_action( 'widgets_init', 'my_register_widget' );

ウィジェットは正しく設定されているようです。管理サイトの「ウィジェット」セクションで設定できます。そのため、ページに表示するコードを追加する必要があります。

さて、ここに私の問題があります....私は私が追加する必要があるコードを知っています。例えば、私はこれを追加することができます:

<div id="sidebar-headerimagewidget" class="sidebar">
    <?php dynamic_sidebar( 'headerimagewidget' ); ?>
</div>

ただし、function.phpファイルしかないので、実際に子テーマのどこに追加するのかわかりません。

親テーマでこれらの変更を行っている場合は、テーマファイルを見て、追加したい場所を確認してから追加します。しかし、これは子供のテーマです...

ファイルを親から子にコピーしてから必要な変更を加える必要がありますか?親テーマのコードを「直接」変更せずにウィジェットにコードを追加する方法は他にありますか?

1
Miguel Pinto

編集したいファイルを親から子テーマにコピーする必要があります。これにより、実際のテーマに触れることなくテンプレートをカスタマイズできます。このテンプレートファイルにすでに持っているコードを貼り付けてください。

次のリンクには、子テーマの作成とテンプレートファイルの変更に関するコーデックスページがあります。 https://codex.wordpress.org/Child_Themes#Template_Files

お役に立てれば。

1
Sjoerd van Hout