web-dev-qa-db-fra.com

Thème Enfant - Comment ajouter un nouveau widget sur un lieu spécifique?

J'ai regardé autour de moi et je suis un peu confus et je n'ai pas encore trouvé de réponse à cette question.

J'ai créé une nouvelle peau d'enfants. Ma peau d'enfant n'a que 2 fichiers 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' );

Le widget semble être correctement configuré et je peux le configurer dans la section "widgets" du site d'administration. Ce qu'il me faut maintenant, c'est d'ajouter le code pour le faire apparaître sur la page.

Maintenant, voici mon problème ... Je sais quel code je dois ajouter. Par exemple, je pourrais ajouter ceci:

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

Cependant, je ne sais pas où l'ajouter réellement dans le thème de l'enfant, car je n'ai que le fichier function.php.

Si je faisais ces changements sur le thème parent, je regarderais les fichiers de thème, regarder l'endroit où je veux l'ajouter et l'ajouter. Mais puisque c'est un thème d'enfant ...

Dois-je copier le fichier du parent vers l’enfant, puis apporter les modifications souhaitées? Existe-t-il un autre moyen d'ajouter le widget au code sans modifier "directement" le code du thème parent?

1
Miguel Pinto

Vous devez copier le fichier que vous souhaitez modifier du parent vers votre thème enfant. De cette façon, vous pouvez personnaliser le modèle sans toucher au thème actuel. Collez le code que vous avez déjà dans ce fichier de modèle et vous êtes prêt à partir.

Le lien suivant contient la page du codex sur la création de thèmes enfants et la modification des fichiers de modèle: https://codex.wordpress.org/Child_Themes#Template_Files

J'espère que cela t'aides.

1
Sjoerd van Hout