Только шаблон сообщения по умолчанию для различных пользовательских типов сообщений - PullRequest
0 голосов
/ 12 марта 2019

В моем текущем проекте у меня есть несколько CPT (~ 9), я бы хотел, чтобы часть из них использовала один и тот же шаблон поста, а другой - другой.Пока там, это нормально с этим куском кода.

<?php 
  /* Template Name: 'Template 1'
   * Template Post Type: cpt1, cpt2, cpt3 */ 
?>

Моя проблема в том, что я создаю новый пост.Мне приходится каждый раз выбирать шаблон ... (> снимок экрана ) Не очень удобно для моего клиента.Повторяющаяся обработка.

Можно ли принудительно использовать шаблон по умолчанию?Есть идеи ?

Заранее спасибо за ваше время.

1 Ответ

1 голос
/ 12 марта 2019

Вы можете достичь того, что вам нужно, настроив пользовательские шаблоны для ваших CPT, которые будут соответствовать иерархии шаблонов WP, и получите доступ к общему шаблону из этих файлов шаблонов.

В частности, для пользовательских типов записей, для которых вы хотите иметь общие шаблоны, вы можете использовать функцию get_template_part() в этих файлах для доступа к общей структуре шаблонов.

Иерархия шаблонов

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

Например, если вы назовете файл шаблона single-product.php, этот шаблон будет использоваться для пользовательского типа записи, зарегистрированного с slug product.

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

  1. single-{post-type}-{slug}.php Если у вас есть пользовательский тип записи {post-type} с slug {slug}, этот шаблон будет использоваться. в противном случае ...
  2. single-{post-type}.php Если у вас есть пользовательский тип записи {post-type}, этот шаблон будет использоваться.
  3. single.php В противном случае WP возвращается к single.php
  4. singular.php - используется, если нет single.php
  5. Наконец, если другой опции нет, WP использует index.php.

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

Например, если у вас есть пользовательские типы записей cpt1 и cpt2, которые должны иметь доступ к одному и тому же шаблону, создайте два шаблона (single-cpt1.php и single-cpt2.php) и добавьте к ним следующий код:

<?php get_template_part('templates/content', 'common-cpt'); ?>

Затем вы можете добавить общие данные шаблона в файл шаблона с именем templates/content-common-cpt.php, и ваша проблема должна быть решена.

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...