Хуки помогают разработчикам изменять или расширять функциональность WordPress без изменения исходного кода ядра. Вот несколько самых полезных хуков для разработки тем и плагинов.
Action Хуки:
init
- Срабатывает после загрузки WordPress, когда темы и плагины загружены.
- Полезен для регистрации пользовательских типов записей, таксономий и функций.
wp_enqueue_scripts
- Используется для подключения стилей и скриптов на фронтенде.
- Рекомендуется для добавления CSS и JavaScript файлов.
admin_enqueue_scripts
- Позволяет подключать стили и скрипты на страницах админки.
wp_head
- Вызывается в
<head>
перед закрывающим тегом. Можно использовать для добавления мета-тегов, стилей или скриптов.
- Вызывается в
wp_footer
- Вызывается перед закрывающим тегом
</body>
. Часто используется для подключения скриптов.
- Вызывается перед закрывающим тегом
the_content
- Срабатывает при выводе контента записи. Полезно для добавления элементов в посты, например, социальные кнопки.
save_post
- Срабатывает при сохранении или обновлении записи. Можно использовать для выполнения действий, связанных с сохранением данных.
template_redirect
- Срабатывает перед рендерингом шаблона. Можно использовать для редиректов на основе условий.
wp_login
- Срабатывает при успешном входе пользователя в систему. Полезен для выполнения каких-то действий сразу после авторизации.
shutdown
- Срабатывает в самом конце выполнения скрипта. Используется для финальных операций, таких как запись в логи.
Filter Хуки:
the_content
- Позволяет изменять содержимое записи перед выводом. Часто используется для добавления рекламы, кнопок и других элементов в контент.
the_title
- Позволяет модифицировать заголовок записи перед его выводом.
wp_nav_menu_items
- Позволяет изменять элементы навигационного меню.
upload_mimes
- Позволяет добавить поддержку новых типов файлов при загрузке через медиабиблиотеку.
excerpt_length
- Позволяет изменить длину отрывка (excerpt) постов.
excerpt_more
- Позволяет изменить текст «Читать далее…» в отрывках.
body_class
- Позволяет добавить дополнительные классы в тег
<body>
, полезно для настройки стилей на различных страницах.
- Позволяет добавить дополнительные классы в тег
wp_mail
- Позволяет изменить параметры отправляемого письма, такие как заголовки или тело сообщения.
login_redirect
- Позволяет изменить URL для редиректа после входа пользователя в систему.
query_vars
- Позволяет добавить пользовательские переменные в запросы WordPress.
Эти хуки позволяют гибко настраивать и расширять функциональность сайта на WordPress, сохраняя код чистым и поддерживаемым.
Вот примеры использования Action и Filter хуков в WordPress для более наглядного понимания:
Примеры для Action Хуков
wp_enqueue_scripts
— Подключение скриптов и стилей
function my_theme_enqueue_styles() {
wp_enqueue_style('my-theme-style', get_stylesheet_uri()); // Подключаем основной файл стилей темы
wp_enqueue_script('my-custom-js', get_template_directory_uri() . '/js/custom.js', array(), '1.0', true); // Подключаем кастомный скрипт
}
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles');
Примеры для Filter Хуков
the_content
— Изменение содержимого записи перед выводом
function add_custom_message_to_content($content) {
if (is_single()) {
$custom_message = '<p>Спасибо, что читаете наш блог!</p>';
$content .= $custom_message; // Добавляем сообщение в конце статьи
}
return $content;
}
add_filter('the_content', 'add_custom_message_to_content');