В чем преимущество использования get_header() перед include('header.php')?

11 дек. 2010 г., 16:05:37
Просмотры: 24.4K
Голосов: 12

В базовой теме - фактически в каждой теме, которую я просматривал - используется get_header() для подключения файла заголовка, но я не вижу причин для этого.

Какие есть преимущества использования get_header() вместо простого include('file.php')?

1
Комментарии

Я знаю, что это немного не по теме, но слишком часто вижу include('some-file.php'); — скобки здесь не нужны, это языковая конструкция! include 'some-file.php'; работает точно так же, да и на мой взгляд выглядит аккуратнее ;)

TheDeadMedic TheDeadMedic
11 дек. 2010 г. 18:17:57
Все ответы на вопрос 3
1
21

Использование универсальной функции означает отказ от слоя API WordPress:

  • get_header хук перестанет работать;
  • исчезнет совместимость с загрузкой разных шапок по имени ("header-{$name}.php");
  • использование locate_template() перестанет работать, что, вероятно, нарушит совместимость с дочерними темами.

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

WordPress использует собственную функцию не просто так. Обычно это делается по конкретным причинам совместимости или функциональности.

11 дек. 2010 г. 16:14:24
Комментарии

Я вызывал альтернативные заголовки с помощью оператора include в php вместо get_header, и это объясняет, почему я получал странное поведение.

matt matt
11 дек. 2010 г. 18:52:42
1

Вы также можете использовать функцию get_header() для подключения другого файла заголовка. Назовите пользовательский файл заголовка header-что-угодно.php, затем используйте

get_header('что-угодно');

и WordPress будет использовать файл header-что-угодно.php вместо header.php.

Обратите внимание, что синтаксис немного странный - можно подумать, что нужно указать имя файла целиком, но нет - требуется только часть имени после дефиса. Хотелось бы вернуть тот час моей жизни обратно :(

10 мая 2011 г. 22:44:31
Комментарии

Ох, спасибо! Чёртов дефис. Может, тебе будет приятно узнать, что сэкономил кому-то пару часов? :)

User User
3 авг. 2011 г. 17:47:49
0

Основная причина в том, что вы можете подключиться к get_header, что означает, что вы можете выполнять действия, связанные с заголовком, в дочерней теме или в отдельном файле функций, не редактируя файлы родительской темы.

Вам не следует редактировать файлы родительской темы, потому что это усложняет их обновление, так как вам придется повторно применять ваши изменения. Если эти изменения изолированы в дочерней теме, обновление становится НАМНОГО проще.

11 дек. 2010 г. 17:00:38