Апрель
6
2011

WordPress очередность исполнения кода

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

Прежде всего обратимся к схеме с описанием вызовов

Детальнее все расписано в кодексе(на английском). Статья не завершена, но общая суть и так понятна.

index.php передает управление wp-blog-header.php, который и управляет всей кухней.

Вызывается wp-config.php, в котором определяются параметры доступа к БД и некоторые другие установки. Далее вызывается wp-settings.php, который по очереди дергает целую кучу файлов

  • wp-includes/functions.php
  • wp-includes/default-filters.php
  • wp-includes/wp-l10n.php
  • wp-includes/functions-formatting.php
  • wp-includes/functions-post.php
  • wp-includes/classes.php
  • wp-includes/template-functions-general.php
  • wp-includes/template-functions-links.php
  • wp-includes/template-functions-author.php
  • wp-includes/template-functions-post.php
  • wp-includes/template-functions-category.php
  • wp-includes/comment-functions.php
  • wp-includes/feed-functions.php
  • wp-includes/links.php
  • wp-includes/kses.php
  • wp-includes/version.php

Как видим вызывается файл functions.php, в которой определяются стандартные функции wordpress, позже их переопределить уже нельзя. Следует учитывать, что вносить сюда изменения не следует. После очередного обновления wordpress файл заменится на стандартный. И вообще это не по феншую.

Далее идет обработка плагинов. Плагины могут определять свои функции и забивать место под солнцем обявляя свои права на хуки (hook).

После подключения плагинов вызывается wp-includes/pluggable-functions.php, как мы помним из уроков php, переобъявлять функции нельзя, вызывая сначала плагины, мы даем им возможность определить вместо стандартных функции свои. Если некоторые функции плагины не объявили, то объявляются стандартные. Список этих функций есть в кодексе.

После этого управление переходит к текущей теме. Именно тема отвечает за вывод информации на экран.

В папке темы есть свой файл functions.php, который и рекомендуется к внесению изменений.

По правильному очередность вызовы проходят в следующем порядке:

  • get_header()
  • информация
  • get_sidebar() -если есть
  • get_footer()

Под информацией я подразумеваю контент страницы. Это может быть либо один объект (единичная запись или страница) либо несколько, реализуется через loop.

Вывод

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

  • плагины — выполняются раньше, могут переопределять некоторые стандартные функции, несколько сложнее реализуются
  • файлы темы — выполняются позже, не могут переопределять стандартные функции, проще реализовать

Плагины не должны содержать непосредственных операций вывода на экран, все операции должны быть заключены в функции, а вызовы функций завязаны на использование хуков (hook).

Использование хуков и их очередность будет описана в следующей статье.

Неправильная раскладка: цщквзкуыы jxthtlyjcnm bcgjkytybz rjlf

Понравилась статья? Посоветуйте друзьям!

PHP WordPress WP Plugin


Понравилась статья? Подпишись на рассылку по E-Mail или в RSS.