Что такое крючки WordPress?
Хуки WordPress – это неотъемлемая часть фреймворка разработки WordPress, позволяющая разработчикам взаимодействовать с основной функциональностью WordPress без изменения основных файлов. Используя хуки, вы можете добавлять или изменять функциональность в темах и плагинах. Существует два основных типа хуков: Action Hooks и Filter Hooks. Здесь мы рассмотрим, что это такое и как их использовать
Что такое крючки WordPress?
Хуки – это предопределенные точки в WordPress, которые позволяют вам “подключаться” к функциям WordPress и выполнять пользовательский код. Это позволяет вам изменять или расширять функциональность ядра WordPress, тем и плагинов без непосредственного редактирования исходных файлов. Существует два основных типа хуков
- Action Hooks: Позволяют добавлять или выполнять пользовательский код в определенные моменты выполнения WordPress (например, при публикации поста или загрузке страницы).
- Фильтрующие крючки: Позволяют изменять или манипулировать данными до их отправки в браузер или сохранения в базе данных (например, модифицировать содержимое или изменять вывод).
1. Крючки действий
Крючки действий срабатывают в различные моменты работы WordPress. Они позволяют добавить функциональность на определенных этапах процесса загрузки WordPress или при наступлении определенных событий (например, публикации поста или отображения нижнего колонтитула)
Как использовать крючки действий:
Чтобы использовать крючок действия, вы используете функцию add_action() в файле functions.php вашей темы или в пользовательском плагине. Эта функция связывает вашу пользовательскую функцию с определенным хуком
Синтаксис:
Пример:
Допустим, вы хотите добавлять пользовательский контент в конце каждого поста
В этом примере the_content – это хук, который запускает функцию для добавления пользовательского контента в конце каждого поста
2. Крючки фильтров
Хуки фильтров позволяют изменять выводимые данные до того, как они будут выведены на экран или сохранены в базе данных. Фильтры получают данные, изменяют их и возвращают
Как использовать крючки фильтров:
Чтобы использовать фильтр-хук, вы используете функцию add_filter(), которая применяет пользовательскую функцию для изменения определенного содержимого
Синтаксис:
Пример:
Допустим, вы хотите изменить название каждого поста, чтобы оно было написано заглавными буквами
В этом примере the_title – это хук, который фильтрует заголовки постов, а функция uppercase_post_title() преобразует все заголовки в верхний регистр
Популярные хуки WordPress
Вот некоторые часто используемые хуки в WordPress
Action Hooks:
- wp_enqueue_scripts: Используется для добавления или удаления скриптов и стилей.
- init: Выполняется после завершения загрузки WordPress, но до отправки заголовков.
- wp_footer: Выполняет код непосредственно перед закрывающим тегом </body> в вашей теме.
- publish_post: Срабатывает при публикации поста.
Фильтрующие крючки:
- the_content: Позволяет фильтровать содержимое поста перед его отображением.
- the_title: Позволяет изменять заголовки постов.
- excerpt_length: Изменение длины выдержек из постов.
- wp_nav_menu_items: Фильтр вывода пунктов меню навигации.
Лучшие практики использования хуков
- Избегайте редактирования основных файлов: Всегда используйте хуки в пользовательских темах или плагинах, чтобы сохранить совместимость с будущими обновлениями.
- Уникальные имена функций: Всегда используйте уникальные имена для своих пользовательских функций, чтобы избежать конфликтов с другими плагинами или темами.
- Используйте условную логику: При использовании хуков применяйте условные проверки, например is_single() или is_admin(), чтобы ваш код выполнялся только тогда, когда это необходимо.
Заключение
хуки ordPress – это способ добавить или изменить функциональность без изменения основных файлов. Существует два основных типа:
Action Hooks – позволяют запускать пользовательский код в определенных точках WordPress.
Фильтрующие крючки – позволяют изменять данные перед их отображением или сохранением.
Пример – крючок действия: Добавление сообщения в нижний колонтитул:
Этот код добавляет сообщение в нижний колонтитул каждой страницы, не затрагивая файлы ядра WordPress.