Как устроен Wordpress?

Горбушка

Ищу её...
Регистрация
2 Май 2008
Сообщения
3.444
Реакции
2.524
Нет, конечно вопрос не "как поставит WP?" и тому подобный...

Совершенно лень копать код, но стало дико интересно, как он устроен внутри, что у него под капотом )))

Интересует реализация с точки зрения пхп функций фильтров и хуков... Как ВП узнаёт о вызове той или иной функции, чтобы наложить на неё фильтр или вызвать до/после неё другую? Как работает функция удаления действия (remout_action(); )?

Собственно, если можно, на кошках...
 
Что? Никто не копался в коде WP?
 
Ох, там извращение

Пока смотришь на админку вроде красиво и удобно, но когда начинаешь что-то под него разрабатывать понимаешь что код устарел лет на 7-10 и выровняли только местами...

Как я понял работает типа такого:
- add_filter - добавляет новый элемент в глобальный :facepalm: массив $wp_filter. Есть кучка дефолтных wordpress\wp-includes\default-filters.php ага-ага просто вызывается 100+ раз с разными параметрами :facepalm:
- если в функции к чему-то можно применить фильтр вызывается apply_filters с тегом фильтра, которая ищет в $wp_filter подходящий тег и применяет функции через call_user_func_array()
 
Кажись, я понял, почему оно так сильно тормозит...
Т.е. я правильно понял, что чтобы применить фильтр к какой-либо функции, в самой функции это должно быть предусмотрено? К пользовательским аля function echoo($a) {echo$a;} такое не применимо?

Оффтоп:
Если после 8 часов дебага и гугла вы поняли, что не можете решить задачу и решили сдаться - откройте-таки мануал!
Да, да, с меня написано... Только не 8 часов, в часов 20... А оказалось - штатное поведение... Описанное на 3-ей странице мана...
 
Кажись, я понял, почему оно так сильно тормозит...
Т.е. я правильно понял, что чтобы применить фильтр к какой-либо функции, в самой функции это должно быть предусмотрено? К пользовательским аля function echoo($a) {echo$a;} такое не применимо?

Точно не скажу, но по идее - да! Ибо чтобы применить фильтр надо вызвать apply_filters()
 
Назад
Сверху