Добавляем название шаблона в админку WordPress
Если ты работаешь с WordPress и хочешь, чтобы какие-то страницы выглядели или вели себя иначе, кастомные шаблоны — это именно то, что тебе нужно! Они дают тебе полную свободу над отображением контента.
В большинстве проектов я использую различные шаблоны для страниц. Новые шаблоны, которые создаются в рамках одного проекта-сайта, называются кастомные шаблоны.
Кастомный (или пользовательский) шаблон — это PHP-файл в твоей теме, который задаёт уникальное оформление и структуру конкретной страницы. Это отличный способ, например, сделать лендинг без боковой панели или страницу с уникальной версткой, отличающейся от стандартной.
Как создать кастомный шаблон для Вордпресс
На самом деле всё проще, чем кажется! Вот базовые шаги:
1. Создай новый PHP-файл в папке своей активной темы. Назови его, например, template-custom.php
.
2. В начале файла добавь вот такой комментарий:
<?php
/*
Template Name: Мой кастомный шаблон
*/
?>
3. После этого можешь добавить свой HTML/PHP-код. Например, просто для теста:
<?php
/* Template Name: Мой кастомный шаблон */
get_header();
?>
<h1>Привет! Это моя уникальная страница 🎉</h1>
<?php get_footer(); ?>
4. При создании или редактировании страницы ты увидишь выпадающий список «Шаблон» — там и будет твой новый шаблон!
Создаем колонку в админке для отображения названия используемого шаблона для страниц
// Добавляем новую колонку "Шаблон" в таблицу страниц
add_filter('manage_page_posts_columns', 'add_template_name_column', 4);
function add_template_name_column($columns)
{
$num = 2; // позиция для вставки
$new_columns = [
'template_name' => 'Шаблон',
];
return array_slice($columns, 0, $num) + $new_columns + array_slice($columns, $num);
}
// Заполняем колонку названием шаблона
add_action('manage_page_posts_custom_column', 'fill_template_name_column', 5, 2);
function fill_template_name_column($colname, $post_id)
{
if ($colname === 'template_name') {
$template = get_post_meta($post_id, '_wp_page_template', true);
if ($template === 'default') {
echo 'По умолчанию';
return;
}
// Получаем все зарегистрированные шаблоны для страниц
$templates = wp_get_theme()->get_page_templates();
// Ищем читаемое название по имени файла
$name = array_search($template, $templates);
echo $name ? esc_html($name) : esc_html($template);
}
}
Что делает этот код:
- Добавляет колонку «Шаблон» в таблицу админки страниц.
- Вместо названия файла (template-about.php) показывает красивое имя шаблона (например,
О
компании), которое ты указываешь в шаблоне так:
/*
Template Name: О компании
*/