Отделяем хедер и футер сайта WordPress

В предыдущем уроке мы сделали файл category.php и файл index.php. Вернитесь к этим файлам и посмотрите на их код: как мы видим, отличия между нашими шаблонами проявляются только в контенте сайта (то есть в центральной части), а вот верхняя и нижняя части шаблонов полностью одинаковые.

Представим себе следующую ситуацию: нам нужно внести какие-то правки в футере сайта. В этом случае нам придется сделать это в двух местах: в файле category.php и в файле index.php, что не очень удобно. А ведь файлов с шаблонами может быть больше, чем два. В этом случае количество правок возрастет.

Гораздо удобнее было бы вынести вынесем верхнюю и нижнюю части нашего шаблона в отдельные файлы. Такая возможность предусмотрена в WordPress.

Давайте верхнюю часть шаблона вынесем в файл header.php. Пусть это будет вот эта часть кода (выбираем произвольно, как нам удобнее):

<!DOCTYPE html> <html> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <title><?php echo wp_get_document_title(); ?></title> <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" type="text/css" /> <?php wp_head(); ?> </head> <body> <header class="header"> <h1><?php bloginfo( 'name' ); ?></h1> <h2><?php bloginfo( 'description' ); ?></h2> </header>

Нижнюю часть шаблона вынесем в файл footer.php. Пусть это будет вот эта часть кода:

<footer class="footer"> <?php echo date('Y') ?> © Я и компания моя </footer> <?php wp_footer(); ?> </body> </html>

Теперь в основном шаблоне мы можем подключить вынесенные части: файл header.php подключается через функцию get_header, а файл footer.php подключается через функцию get_footer:

<?php get_header(); ?> <div class="middle"> <?php // тут код центральной части макета ?> </div> <?php get_footer(); ?>

Давайте посмотрим на новый код файлов index.php и single.php.

Файл single.php:

<?php get_header(); ?> <div class="middle"> <?php if (have_posts()) { while (have_posts()) { the_post(); echo '<h1>'. get_the_title() .'</h3>'; echo get_the_content(); } } else { echo '<p>Такой записи не существует...</p>'; } ?> </div> <?php get_footer(); ?>

Файл index.php:

<?php get_header(); ?> <div class="middle"> <?php if (have_posts()) { while (have_posts()) { echo '<h3><a href="'. get_permalink() .'">'. get_the_title() .'</a></h3>'; echo get_the_excerpt(); } } else { echo '<p>Записей нет...</p>'; } ?> </div> <?php get_footer(); ?>

Отделите хедер и футер вашего сайта в отдельные файлы. Внесите правки во все файлы ваших шаблонов.

Выведите в футере сайта ваше ФИО. Убедитесь, что изменения одновременно произойдут для всех типов страниц.