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


11

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

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


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

Ответы:


18

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

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

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

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


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

2

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

get_header('whatever');

и WP будет использовать файл header-what.php вместо header.php.

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


ооо, спасибо! чертов дефис. может быть, это облегчит ваш день, когда вы узнаете, что спасли кого-то пару часов? :)

0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.