Проблема подключения статической страницы в шаблоне Terminal Blog для WordPress

Одной из ключевых функций WordPress является возможность настроить статическую главную страницу через админ-панель сайта. Однако, как показала практика, не все темы поддерживают эту функцию корректно, и шаблон Terminal Blog — один из таких примеров. Несмотря на наличие опции для установки статической страницы в настройках, на практике при её выборе на главной странице отображаются только шапка и подвал, а сам контент страницы отсутствует.

Эта проблема встречается не только у отдельных пользователей, но и у множества других, о чём свидетельствуют многочисленные обсуждения на форумах и в сообществах WordPress. В этой статье мы рассмотрим, как решить данную проблему и подключить статическую страницу вручную, используя PHP-код.

Шаг 1: Проблема с отображением контента

Основная проблема заключается в том, что шаблон Terminal Blog не включает логику для вывода контента статической страницы в файле front-page.php. По умолчанию, этот файл используется для отображения главной страницы сайта, однако в его коде отсутствует механизм для вызова контента статической страницы.

Когда вы пытаетесь настроить статическую главную страницу через настройки WordPress, шапка и подвал отображаются корректно, но основная часть страницы, которая должна содержать текст и элементы, создаваемые через редактор страниц WordPress, не загружается.

Шаг 2: Решение проблемы

Для того чтобы правильно подключить контент статической страницы в шаблон Terminal Blog, необходимо вручную внести изменения в файл front-page.php. Вот финальный рабочий код, который вы можете использовать для корректного отображения контента:

php
<?php
/**
* The front page template file
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Terminal Blog
*/
get_header();

// Call home.php if Homepage setting is set to latest posts.
if ( terminal_blog_is_latest_posts() ) {

require get_home_template();

} elseif ( terminal_blog_is_frontpage() ) {

// Проверяем, установлена ли статическая главная страница
if ( have_posts() ) :
while ( have_posts() ) : the_post(); ?>

<!— Начало обёртки с классами из header.php —>
<div classthemewrapper«>
<div classsitecontent themewrap«>
<div classpagecontent«>
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
</div>
</div>
</div>
<!— Конец обёртки —>

<?php endwhile;
else :
echo ‘<p>Контент не найден.</p>’;
endif;
}

get_footer();

Шаг 3: Что было изменено

Чтобы контент статической страницы отображался корректно, мы добавили несколько важных элементов в файл front-page.php:

  1. Добавлена обёртка с классами .theme-wrapper и .site-content theme-wrap. Эти классы уже используются в шаблоне для обёртки шапки сайта, и их применение к контенту позволяет обеспечить одинаковую ширину и стили для всей страницы, включая контент, шапку и подвал.В файле header.php шапка обёрнута в класс .theme-wrapper, что обеспечивает ей нужное форматирование и ограничивает ширину. Добавив этот класс в файл front-page.php, мы добились того, чтобы контент страницы имел ту же ширину, что и шапка, устранив проблему с некорректным выравниванием.
  2. Использование стандартных функций WordPress: Мы добавили проверку на наличие статической страницы с помощью функции have_posts(), а также вызов контента страницы через the_content(). Это стандартный метод вывода контента в WordPress, который позволяет отобразить всё содержимое статической страницы, созданной в админ-панели.В результате этих изменений контент страницы будет выводиться корректно, следуя за шапкой и подвалом, как это должно быть при использовании статической страницы.
  3. Улучшенная совместимость с динамическими страницами: Мы также сохранили оригинальный функционал шаблона, который использует home.php для отображения последних записей, если в настройках указано показывать последние публикации вместо статической страницы. Таким образом, код остаётся гибким и подходит для любых настроек главной страницы.

Шаг 4: Проверка и тестирование

После внесения изменений в файл front-page.php необходимо сохранить его и загрузить на сервер. Затем проверьте сайт, чтобы убедиться, что статическая главная страница отображается корректно. Теперь контент страницы будет выводиться с правильным форматированием и шириной, совпадающей с шапкой и подвалом.