web-dev-qa-db-fra.com

Ajout de widgets à l'en-tête et au pied de page du plugin

j'ai créé 4 widgets d'en-tête et 4 de pied de page à l'aide d'un plugin de site spécifique. La raison en est que, lorsque je change de thème, je conserve tous mes widgets. J'ai créé deux fichiers, un pour les widgets d'en-tête et un pour les widgets de pied de page. Ce que je dois faire maintenant, c'est de les ajouter aux fichiers d'en-tête et de pied de page.

à ce stade, je mets le code suivant manuellement dans l'en-tête en bas après la balise de fermeture de l'en-tête:

<? if ( is_front_page() ) : ?>  
        <?php   get_sidebar( 'homepage' );  ?>
        <?php endif ; ?>`

et le code suivant dans mon pied de page en haut:

<?php get_sidebar( 'footer1' ); ?>

Comment puis-je insérer ces codes automatiquement dans mes fichiers d'en-tête et de pied de page à partir de mon plugin?.

merci beaucoup

1
Pieter Goosen

En fait, l'inclusion de ce code dans vos fichiers de modèle de thème est le seul moyen sûr d'inclure ces widgets dans divers thèmes. Il est également préférable de les amener où vous le souhaitez.

Vous pouvez également utiliser des hooks pour le faire, mais cela dépend du fait que vos thèmes appellent le hook et se trouvent au bon endroit. Les paris les plus sûrs sont les hooks get_header et get_footer, qui sont appelés juste avant de récupérer les fichiers footer.php et header.php, respectivement.

add_action( 'get_header', 'header_widgets' );
function header_widgets() {
    if( is_front_page() ) {
        get_sidebar( 'homepage' );
    }
}
add_action( 'get_footer', 'footer_widgets' );
function footer_widgets() {
    get_sidebar( 'footer1' );
}
1
Stephen M. Harris