@StaticArt

Как создать функцию для вывода шаблона произвольного типа записи?

Для категорий использую такой код в functions php :

<?php
  $post = $wp_query->post;
 
  if (in_category('portfolio')) { //slug  категории
      include(TEMPLATEPATH.'/single-portfolio.php');
  } else {
      include(TEMPLATEPATH.'/single-default.php');
  }
?>


А как cделать для произвольных типов записей , например для: post_type_1, post_type_2, post_type_3 использовать archive_1.php , для остальных archive.php
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
KorniloFF
@KorniloFF
Работаю по font-end / JS
Не best, но можно как-то так:
UPD
function inc(string $cat, string $name='/single-default.php')
	{
		$path = TEMPLATEPATH.$name;
		if (in_category($cat) && file_exists($path)) include_once($path);
	}
	inc('portfolio');
	inc('portfolio', '/single-portfolio.php');
Ответ написан
Комментировать
solidcreature
@solidcreature
Развиваю сообщество WordPress в Москве
Здравствуйте.
В Вордпрессе есть нативная функция для подключения файлов темы:
get_template_part('content'); //выведет содержимое файла content.php
get_template_part('content','single'); //выведет содержимое файла content-single.php
//в случае если файл content-single.php отсутствует функция подгрузит content.php
get_template_part('parts/slider','portfolio'); //выведет файл slider-portfolio.php из папки parts

Подробно о функции:
https://wp-kama.ru/function/get_template_part

=========

В Вордпрессе есть такое понятие как иерархия шаблонов
https://codex.wordpress.org/%D0%98%D0%B5%D1%80%D0%...

Т.е. правильно названные файлы будут автоматически подружатся в нужных местах. Если у вас есть кастомный тип записей activities, то для создания отдельного шаблона страницы activities -- вам достаточно создать файл single-activities.php для создания отдельного шаблона архива archive-activities.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы