Вы можете достичь того, что вам нужно, настроив пользовательские шаблоны для ваших CPT, которые будут соответствовать иерархии шаблонов WP, и получите доступ к общему шаблону из этих файлов шаблонов.
В частности, для пользовательских типов записей, для которых вы хотите иметь общие шаблоны, вы можете использовать функцию get_template_part()
в этих файлах для доступа к общей структуре шаблонов.
Иерархия шаблонов
Если вы правильно называете файлы шаблона, WordPress знает, что шаблон должен использоваться по умолчанию для заданного пользовательского типа записи.
Например, если вы назовете файл шаблона single-product.php
, этот шаблон будет использоваться для пользовательского типа записи, зарегистрированного с slug product
.
Шаблоны выбираются иерархически, поэтому при необходимости WordPress может даже отображать пользовательский шаблон для определенного слага. Иерархия для пользовательских типов записей:
single-{post-type}-{slug}.php
Если у вас есть пользовательский тип записи {post-type} с slug {slug}, этот шаблон будет использоваться. в противном случае ...
single-{post-type}.php
Если у вас есть пользовательский тип записи {post-type}, этот шаблон будет использоваться.
single.php
В противном случае WP возвращается к single.php
singular.php
- используется, если нет single.php
- Наконец, если другой опции нет, WP использует
index.php
.
В вашем случае вы можете настроить различные шаблоны индивидуально для каждого пользовательского типа публикации, но для шаблонов, которые должны быть одинаковыми, обратитесь к общим частям шаблона из в этих шаблонах.
Например, если у вас есть пользовательские типы записей cpt1
и cpt2
, которые должны иметь доступ к одному и тому же шаблону, создайте два шаблона (single-cpt1.php
и single-cpt2.php
) и добавьте к ним следующий код:
<?php get_template_part('templates/content', 'common-cpt'); ?>
Затем вы можете добавить общие данные шаблона в файл шаблона с именем templates/content-common-cpt.php
, и ваша проблема должна быть решена.
Ссылки