Добавляем название шаблона в админку Wordpress - Purple Web

Добавляем название шаблона в админку 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: О компании
*/