FL.ru – фриланс сайт удаленной работы №1. Поиск удаленной работы, фрилансеры.

Гид для новичков: действия и фильтры WordPress

Категории: WordPress

Когда дело доходит до профессиональной разработки на WordPress, очень важно, чтобы разработчики понимали как действия, так и фильтры, являющиеся основополагающими WordPress – все это Хуки.

Хуки дают нам возможность изменять, расширять и улучшать WordPress через API в наших темах, плагинах и других элементах кастомизации.

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

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

Жизненный цикл страницы WordPress

Перед тем, как перейти к хукам WordPress, важно понять, из чего состоит жизненный цикл WordPress

Жизненный цикл страницы – это не что иное, как комбинация событий, начиная с того момента, когда браузер запрашивает страницу и заканчивая тем, когда сервер отдает ее браузеру”.

Скажем, к примеру, что вы загружаете одну страницу. При этом WordPress на самом высоком уровне выполняет следующее:

  • Выясняет ID запрошенной страницы
  • Обращается к базе данных по ID этой страницы
  • Получает все ассоциированные с этой страницей данные из базы данных (категории, теги, изображения и т.д.)
  • Получает из базы данных комментарии к этой страницы
  • Возвращает все данные браузеру

За вывод, стиль и позиционирование данных на мониторе отвечают файлы шаблона и запросы к API функциям.

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

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

Популярный разработчик проектов на WordPress, Rarst (http://twitter.com/Rarst), создал график, который раскрывает основы загрузки ядра WordPress:

filtry wordpress

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

Вот ключ к пониманию основных моментов о хуках во время жизненного цикла загрузки страницы WordPress:

“В то время как WordPress проводит серию запросов и готовит данные к их возврату браузеру, он еще проверяет все пользовательские хуки, а это действия и фильтры, которые были записаны. Именно через фильтры проходят все собранные данные перед тем, как данные отдаются браузеру”.

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

Все о хуках

Хуки в WordPress – это действия и фильтры. Если бы вы решили поискать определение на официальном сайте (http://codex.wordpress.org/Plugin_API/Hooks), то вы бы увидели короткую страницу со ссылками на действия и фильтры. Именно таким оно и должно быть.

Но вот что на самом деле вы должны думать об этом:

“Хуки в прямом смысле позволяют нам зацепляться за части жизненного цикла страницы WordPress для восстановления, вставки или изменения данных. Или же они позволяют нам предпринимать определенные действия перед отображением”.

Довольно неплохо, не так ли?

Усвоить нужно следующее:

1. Действия отличаются от фильтров.

2. Вы легко можете забросить хук (крюк) в любой момент работы. Существует определенное время запуска хука и оптимальное время его действия.

Действия

Итак, что же такое действия? Самое простое определение гласит, что действия указывают на то, что произошло. Вот и все. И как же нам не перепутать их с событиями?

Вот как это понимаю я:




Действия – это события в жизненном цикле страниц WordPress, когда случаются определенные вещи: загружаются определенные ресурсы, становятся доступными определенные возможности, и, в зависимости от того, как рано произошло действие, должны загружаться некоторые элементы”.

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

Это означает, что у вас есть возможность заставить что-то происходить в то время, когда загружается страница.

В WordPress вообще важно хорошо знать именно те моменты, когда ты можешь вмешаться. Лично я очень часто встречаю разработчиков, которые чрезмерно используют действие init. Я не сомневаюсь, что делают они это вовремя, но неужели нельзя сообщить о том, что ты собираешься делать до того, как кто-то начнет получать пост? Лучше использовать pre_get_posts хук, нежели init.

Именно поэтому очень важно понимать действия.

Фильтруйте все!

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

Вот что фильтры означают для меня:

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

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

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

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

Но когда какой хук использовать?

Вот некоторые советы, которые я обычно даю:

  • Используйте действия для добавления чего-либо на уже существующую страницу, например, таблицы стилей, зависимости JavaScript, или email рассылку после совершения события.
  • Используйте фильтры, когда вы хотите управлять данными, которые выходят из базы данных и отправляются в браузер, или направляются от браузера к серверу.

Вот и все! Я надеюсь, что все довольно просто.




Подпишитесь на рассылку блога
max1net.com:
Уже подписались человек
Укажите свой e-mail