Как правило при условной следующей структуре
<body>
<div class="wrapper">
<nav>Главное меню</nav>
<div>Контент страницы</div>
<footer>Подвал</footer>
</div>
<body>
В header.php помещаем открывающийся тег body, главное меню, возможно открывающийся тег блока основного контента.
В footer.php соответственно содержимое подвала и закрывающийся body.
Непосредственно же контент страницы идет в page.php, category.php и т.д.
Столкнулся с ситуацией, когда на главной странице требуется сделать абсолютно другой "лэйаут", условно
<body>
<div class="main-page">Контент главной страницы</div>
<body>
И "хвосты" верхнего меню и подвала ну совсем не нужны (обернуть их в условный тег конечно можно, но тогда придется оборачивать и общий div обертку.
Пришла идея, оставить только index.php, а так же header.php и footer.php в которых будет исключительно body (ну и head, скрипты, стили).
В index.php сделать следующую конструкцию:
get_header();
if(is_home()) {
get_template_part('layouts/home');
}
else {
get_template_part('layouts/default');
}
get_footer();
А в layouts/default.php например
<?php get_template_part( 'parts/nav'); ?>
<div class="content">
<?php
if (is_tax( 'taxonomy' )) {
get_template_part( 'pages/taxonomy');
}
elseif (is_singular('post-type')){
get_template_part( 'pages/post-type');
}
?>
</div>
</div>
Это работает, разницы в скорости на локальном сервере я не замечаю.
Но это отход от кодекса...
Гуру, что думаете - стоит так делать или нет, и почему?