web-dev-qa-db-fra.com

Impossible de remplacer footer.php dans le thème de l'enfant

J'ai de la difficulté à remplacer le footer.php, le footer-set.php et le footer-tag.php de mon thème parent par mon thème enfant.

Je viens d'essayer de copier-coller et de les modifier. Sans succès. Peut-être sont-ils lus mais probablement plus tard, ceux du parent l’emporteront.

J'ai également essayé de les demander à partir du functions.php dans le thème de l'enfant sans succès:

<?php
function my_theme_enqueue_styles() {

    $parent_style = 'parent-style'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
    require_once get_stylesheet_directory() . '/footer.php';
    require_once get_stylesheet_directory() . '/footer-set.php';
    require_once get_stylesheet_directory() . '/footer-tag.php';

    /*include( get_stylesheet_directory() . '../footer.php' ); 
    include( get_stylesheet_directory() . '../footer-set.php' ); 
    include( get_stylesheet_directory() . '../footer-tag.php' ); */
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

Le thème de l'enfant est actif et cela fonctionne. Je le sais parce que style.css fonctionne - cela a un effet. De plus, si j'écris quelque chose de mal dans le fichier functions.php du dossier des enfants, une erreur se produira. Donc, il analyse le functions.php du thème de l'enfant.

Je suppose que je dois désenregistrer le footer.php quelque part, mais je ne sais pas où et comment.

Ceci est la structure de thème de mes parents, et ces 3 sont les fichiers que je tente de remplacer.

 enter image description here 

Et voici ce que j'ai ajouté dans le thème de l'enfant:

 enter image description here 

Comme plus d’informations au cas où cela serait utile, voici à quoi ressemble footer.php:

<?php if ( tt_is_sidebar_active('footer_widget_area') ) { ?>
<section id="footer-widgets" class="clear">     
    <ul class="content-block xoxo">

        <?php dynamic_sidebar('footer_widget_area'); ?>

    </ul>
</section>
<?php } ?>
</section>
<?php global $template_url;?>
    <footer id="footer">
        <section class="content-block" style="margin-bottom:0;">
            <p class="copyright left">&copy; <?php echo date('Y');?> Queen Latifah Weight Loss</a>
             | Theme By <a href="http://allinonetheme.com" title="All In One Theme" rel="nofollow">All In One Theme</a></p>
            <ul id="footer-nav" class="right">
                <li><a href="<?php bloginfo('url');?>" title="Visit HomePage">Home</a></li>
                    <?php //About Us Page
                    $footer_item = get_option('tt_footer_about');
                    if($footer_item && $footer_item != '' && is_numeric($footer_item)) { 
                    $page = get_page($footer_item);
                    ?>
                    <li><a href="<?php echo get_permalink($footer_item);?>" title="<?php echo $page->post_title; ?>">About</a></li>
                    <?php
                    }
                    unset($footer_item); unset($page);
                    ?>
                    <?php //Terms Of Service Page
                    $footer_item = get_option('tt_footer_tos');
                    if($footer_item && $footer_item != '' && is_numeric($footer_item)) { 
                    $page = get_page($footer_item);
                    ?>
                    <li><a href="<?php echo get_permalink($footer_item);?>" title="<?php echo $page->post_title; ?>" rel="nofollow">Terms Of Service</a></li>
                    <?php
                    }
                    unset($footer_item); unset($page);
                    ?>
                    <?php //Privacy Policy Page
                    $footer_item = get_option('tt_footer_privacy');
                    if($footer_item && $footer_item != '' && is_numeric($footer_item)) { 
                    $page = get_page($footer_item);
                    ?>
                    <li><a href="<?php echo get_permalink($footer_item);?>" title="<?php echo $page->post_title; ?>" rel="nofollow">Privacy Policy</a></li>
                    <?php
                    }
                    unset($footer_item); unset($page);
                    ?>
                    <?php //Contact Us Page
                    $footer_item = get_option('tt_footer_contact');
                    if($footer_item && $footer_item != '' && is_numeric($footer_item)) { 
                    $page = get_page($footer_item);
                    ?>
                    <li><a href="<?php echo get_permalink($footer_item);?>" title="<?php echo $page->post_title; ?>" rel="nofollow">Contact</a></li>
                    <?php
                    }
                    unset($footer_item); unset($page);
                    ?>              <li><a href="http://www.queenlatifahweightloss.com/resources/" title="Resources" rel="nofollow">Resources</a></li>
            </ul>

        </section>
    </footer>
    <?php wp_footer();?>
</body>
</html>

J'ai aussi ceci dans functions.php:

//Get Theme Specific Footer
function tt_get_footer() {

    $footer = get_option('tt_footer_layout');

    if($footer == 'tag') {

        include('footer-tag.php');

    } else if ($footer == 'set') {

        include('footer-set.php');

    } else if ($footer == 'custom' || $footer == 'no') {

        include('footer.php');
    } 
}

À la fin de index.php j'ai:

<?php tt_get_footer(); ?>
2
treisto

Mon ami, regardez leur codex ici https://codex.wordpress.org/Function_Reference/get_footer et vous saurez comment faire. Dans votre cas, pas besoin d'ajouter ces

require_once get_stylesheet_directory() . '/footer.php';
require_once get_stylesheet_directory() . '/footer-set.php';
require_once get_stylesheet_directory() . '/footer-tag.php';

Il vous suffit de réparer votre tt_get_footer comme ceci

//Get Theme Specific Footer
function tt_get_footer() {

    $footer = get_option('tt_footer_layout');

    if($footer == 'tag') {

        get_footer('tag');

    } else if ($footer == 'set') {

        get_footer('set');

    } else {

        get_footer(); // This one will use footer.php
    } 
}

Ensuite, votre pied de page de thème enfant aura priorité

1
Trac Nguyen

Il semble que le thème n'utilise pas les API de chargement de modèle wordpress "theme agnostic", dans ce cas get_footer, ni de toute autre manière flexible, ce qui signifie que le pied de page ne peut pas être modifié par un thème enfant.

0
Mark Kaplun

En regardant rapidement comme un travail ...

Mais ajoutez:

<?php get_footer(); ?>

dans vos fichiers de modèle (cela devrait être là ... vous devrez peut-être aussi appeler les fichiers footer-set.php et footer-tag.php)

vous ne devriez pas avoir besoin de:

require_once get_stylesheet_directory() . '/footer.php';
require_once get_stylesheet_directory() . '/footer-set.php';
require_once get_stylesheet_directory() . '/footer-tag.php';

Dans votre Functions.php aussi

Si cela est incorrect, aide plus quand je suis à la maison

0
Thomas Withers

Tout d'abord, vous n'avez pas besoin d'appeler les fichiers de pied de page dans le fichier functions.php. Alors supprimez ces lignes en premier.

require_once get_stylesheet_directory() . '/footer.php';
require_once get_stylesheet_directory() . '/footer-set.php';
require_once get_stylesheet_directory() . '/footer-tag.php';

Comme vous l'avez dit, votre thème enfant fonctionne correctement. Nous allons donc déboguer sur la raison pour laquelle votre fichier footer.php ne fonctionne pas. Je ne sais pas où vous appelez footer-set.php et footer-tag.php. Je suppose que vous en avez besoin dans le fichier footer.php. Pour le débogage, supprimez les anciens fichiers pour le moment et créez un nouveau fichier portant le nom footer.php. Laissez-le vide. Seules les balises body et html seront fermées. Ensuite, votre pied de page doit être vide au début, essayez ces étapes puis laissez-moi savoir ce qui se passe.

0
Umer Shoukat