Вы не должны использовать include()
в вашей теме Wordpress.
Причина в том, что архитектура Wordpress очень подключаема - по всему ядру, плагинам и темам большинство компонентов могут взаимодействовать с другими компонентами через actions и filters.
Хотя get_footer()
может показаться простым, функции, которые он запускает, позволяют частично отменить части вашей темы. В этом случае locate_template() позволяет дочерней теме отправляться с файлом footer.php
, чтобы переопределить тот, который настроен вашей основной темой.
Кроме того, сама get_footer() позволяет гибкость в том числе несколько файлов колонтитула в вашей теме Wordpress, так что вы можете назвать несколько другой колонтитул на определенном шаблоне, если вам нужно (путем, например, get_footer('alternative')
называть footer-alternative.php
-., Который затем также переопределяется дочерней темой).
Стоит отметить, что вы должны также обеспечить шаблон нижнего колонтитула имеет вызов wp_footer() в нем - в идеале непосредственно перед </html>
тега. Это связано с тем, что я упомянул выше о действиях и фильтрах: в этом случае любые функции, подключенные к нижнему колонтитулу плагинами или ядром Wordpress (например, сценарий), будут запускаться по назначению (кстати, get_footer()
сам также выполняет действие get_footer
, который позволяет, например, плагину переопределить, какой шаблон нижнего колонтитула вызывается - это, таким образом, является еще одной причиной использования get_footer()
).
Наконец, в связи с не использованием include()
в вашей теме на всех, если вы окажетесь необходимости включить другой файл шаблон, который не является колонтитулы, get_template_part() существует для этого. Хотя иногда кажется, что проще просто использовать собственные функции PHP, а не оболочки, которые предоставляет архитектура Wordpress, в конце концов это означает, что «Wordpress way» означает, что ваша тема будет лучше взаимодействовать с плагинами и будущими версиями Core, а также быть более удобной для обслуживания другими. И, вероятно, вы, вероятно, избегаете появления слишком странных ошибок для себя!
Спасибо за ответ.Если бы я хотел использовать get_template_part() и get_footer(), есть ли способ отправки в него переменных? Функции? Singleton? Что делать, если вы не создаете тему для продажи или повторного использования, и это одноразовая сделка? –
Любой может столкнуться с этим вопросом Q & A (и Q & A для StackOverflow должны быть широко применимы), поэтому лучше всего отнести вас к лучшей практике. В конце концов, вы все равно можете делать все, что захотите, будь то тема одноразового использования или нет;) Тем не менее, это «способ Wordpress», вероятно, сохранит ваши проблемы позже. В отношении отправки переменных в [этот ответ на WPSE] (http://wordpress.stackexchange.com/questions/176804/passing-a-variable-to-get-template-part) объясняется, как это сделать. –
@JamesHeazlewood На самом деле вы также можете использовать глобальную переменную ... хотя, как правило, это не очень хороший PHP, Wordpress (и его плагины) работают в основном в глобальном пространстве имен, так что это необязательно делать не-Wordpress. Просто убедитесь, что он назван достаточно однозначно и т. Д. –