web-dev-qa-db-fra.com

Auto get_header et get_footer sur chaque modèle?

Existe-t-il un moyen d'exécuter automatiquement get_header() au début du modèle et get_footer() à la fin de celui-ci?

Actuellement, mon code est trop répétitif avec ces appels.

Je cherchais un moyen de le faire, mais je ne le trouve pas dans Google.

7
hrsetyono

En regardant wp-includes/template-loader.php… il semble y avoir un moyen:

if ( $template = apply_filters( 'template_include', $template ) )
    include( $template );

Vous pouvez vous connecter à ce filtre, gérer l'inclusion dans une fonction de rappel et renvoyer FALSE.

Exemple de code, non testé:

add_filter( 'template_include', function( $template ) {

    get_header();
    include $template;
    get_footer();

    return FALSE;
});
11
fuxia

@scribu propose une méthode de réduction de la répétition de code dans les modèles WordPress qu’il appelle wrappers de thème , ce qui donne ce que vous recherchez. Le roots theme utilise une version légèrement modifiée de version de cette méthode .

3
Emzo