web-dev-qa-db-fra.com

Changer la hiérarchie des modèles

Existe-t-il un moyen simple de modifier la hiérarchie de modèles par défaut WP?

Par exemple;

Supposons que je veuille modifier la structure de mon répertoire de thèmes de sorte qu'elle soit complètement modifiée par rapport à la hiérarchie de modèles suggérée ici en fonction de conditions:

http://codex.wordpress.org/Template_Hierarchy

Si je veux être sûr que pour tous les types de page (is_single()is_home() etc.), il ouvre toujours un fichier de modèle qui incite ensuite mon propre modèle à fournir le résultat?

Merci beaucoup!

1
Alex

Essayez ce filtre

function wpse_63614_restructure_template_hierarchy( $template ){
    return get_template_directory().'/filename.php';
}
add_filter( 'template_include', 'wpse_63614_restructure_template_hierarchy' );

Le nom de fichier serait le fichier que vous voudriez appeler dans votre dossier de thèmes. Pour les thèmes enfants, utilisez plutôt get_stylesheet_directory.

EDIT:

Ou comme suggéré par Chip Bennett et ce que je pense aussi être mieux; vous pouvez utiliser le hook template_redirect de la manière suivante. La priorité peut être définie en conséquence si nécessaire.

function wpse_63614_restructure_template_hierarchy(){
    include( get_template_directory().'/filename.php' );
    exit;
}
add_action( 'template_redirect', 'wpse_63614_restructure_template_hierarchy' );
3
Joshua Abenazer