Каковы ПРЕИМУЩЕСТВА ОРИГИНАЛЬНОЙ структуры шаблона Wordpress?

Предварительное условие: , исходящее из пользовательских приложений PHP (используя мир symfony, zend и т. д.), для меня неестественно разделять шаблон таким образом, который выполняется в оригинальной теме wordpress. например, верхняя часть страницы находится в заголовке, в центре «индекс, страница ...» и нижняя часть в нижнем колонтитуле.

пример текущей структуры: index.php

[include header]
... main content...
[include footer]

и header.php

<html>
    <head>
      ....
    </head>
    <body>
      .....

и footer.php

       .....
   </body>
</html>

Я больше привык к структуре, в которой у вас есть макет, и включаю в него другой (частичный) шаблон. пример: шаблон index.php

    <html>
      <head> [include header] </head> 
      <body> 
          [include body] [include    footer] 
      </body> 
    </html>

Поэтому я стараюсь думать о преимуществах оригинальной структуры шаблонов Wordpress.

Вопрос: Каковы ПРЕИМУЩЕСТВА ОРИГИНАЛЬНОЙ структуры шаблона Wordpress в отличие от второго примера, описанного выше?

6 голосов | спросил simple 6 PMpFri, 06 Apr 2012 16:33:54 +040033Friday 2012, 16:33:54

2 ответа


7

Во-первых, как следует из @Toscho, get_header() и get_footer() просто включают файлы с именем header.php и footer.php, соответственно. Оба тега шаблона вызываются из шаблонов файлов, и вы можете разделить контент между шаблоном file (index.php) и часть шаблона (header.php, footer.php) любым способом. Таким образом, WordPress, безусловно, может разместить ваш последний пример.

Тем не менее, реальная власть в стандарте, метод WordPress для разделения контента происходит из Иерархия шаблонов WordPress . В WordPress файл index.php является фактически используемым файлом last . Это файл шаблона резервного файла по умолчанию, когда не найдено другого более подробного файла шаблона:

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

Так как любой из 7 (первичных) до 16 (вторичных) файлов шаблонов (и это только для общедоступной темы), то в пользовательских темах может быть любое число файлов шаблонов) , в зависимости от текущего контекста метод разметки «WordPress» минимизирует количество дублированного кода.

Предположим, вы хотите изменить свой doctype от переходного к строгому (или вы хотите перейти на HTML5), или что вы хотите изменить свое заявление об авторских правах в нижнем колонтитуле вашего сайта. Используя метод разметки «WordPress», вы вносите эти изменения в файл one . Используя последний метод разделения контента, вы делаете эти изменения от семи до шестнадцати (или более) раз.

Изменить

Я решил, что этот вопрос возникнет:

  

Я хочу услышать ваше мнение относительно следующей ситуации. Предположим, нам нужно включить «og tags (Open Graph meta tags)», и они имеют разный формат для шаблонов «index», «single.php» «page» «archive». Если у нас есть структура типа «исходная структура темы wp», тогда мы должны использовать условные операторы (if..else) в файле «header.php», правильно? И я думаю, что все согласны с меньшими «условными заявлениями» о лучшей производительности за запрос, верно?

У нас есть несколько вариантов:

  1. Использовать условия запроса PHP непосредственно внутри header.php
  2. Использовать условия запроса PHP в обратных вызовах, подключаться к wp_head (или wp_enqueue_scripts и т. д.)
  3. Используйте get_header( $context ), где $context основывается на иерархии шаблонов и будет включать header-$context.php, если найден, или header.php, если не найден.

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

ответил Chip Bennett 6 PMpFri, 06 Apr 2012 17:46:54 +040046Friday 2012, 17:46:54
7

Нет противоречия, вы можете использовать оба.

Пример

<!doctype html>
<html <?php language_attributes(); ?>>
  <head>
    <?php get_header(); ?>
  </head>
  <body>
    <?php get_template_part( 'content', get_post_format() ); ?>
    <?php get_footer(); ?>
  </body>
</html>

Преимущество системы WordPress заключается в следующем: вы можете структурировать свои шаблоны, как пожелаете.

ответил fuxia 6 PMpFri, 06 Apr 2012 17:06:01 +040006Friday 2012, 17:06:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132