WordPress — популярная система управления контентом (CMS), которая поддерживает более 40% веб-сайтов в Интернете. Одной из наиболее важных особенностей WordPress является его способность изменять основную функциональность платформы с помощью хуков.
Хуки бывают двух видов: действия и фильтры. Действия — это события, запускаемые WordPress, в то время как фильтры изменяют данные в WordPress. Действия и фильтры выполняются в определенном порядке, что позволяет разработчикам контролировать процесс выполнения и изменять данные по мере необходимости.
Зачем нужны хуки
С помощью хуков в WordPress можно:
- Модифицировать WordPress без изменения основного кода, что упрощает обслуживание и обновление сайта.
- Настраивать WordPress в соответствии с их конкретными потребностями.
- Расширять WordPress за пределы его основной функциональности.
Как работать с хуками
Чтобы работать с хуками в WordPress, необходимо понимать два типа хуков: действия и фильтры. Действия — это события, запускаемые WordPress, например, при публикации поста или при входе пользователя в систему. Фильтры, с другой стороны, используются для изменения данных в WordPress, например, путем изменения текста поста или URL изображения.
Разработчики могут добавлять свой собственный пользовательский код в хуки, используя функции add_action() и add_filter(). Эти функции позволяют разработчикам указывать имя перехватчика, к которому они хотят добавить свой код, а также имя функции, которая должна выполняться при срабатывании перехватчика.
Например, чтобы добавить пользовательский код к действию wp_head, можно использовать следующий код:
function my_custom_function() {
// Add custom code here
}
add_action( 'wp_head', 'my_custom_function' );
Аналогично, чтобы изменить текст сообщения с помощью фильтра, можно использовать следующий код:
function my_custom_filter( $text ) {
// Modify the text here
return $text;
}
add_filter( 'the_content', 'my_custom_filter' );
Дополнительные хуки
В дополнение к add_action() и add_filter(), есть несколько других функций, которые разработчики могут использовать для работы с хуками в WordPress.
remove_action() и remove_filter() используются для удаления ранее добавленных действий и фильтров соответственно. Это может быть полезно, когда необходимо удалить хук, который больше не нужен или конфликтует с другим кодом.
Пример remove_action():
function my_custom_function() {
// Add custom code here
}
add_action( 'wp_head', 'my_custom_function' );
// Remove the 'wp_head' action
remove_action( 'wp_head', 'my_custom_function' );
Пример remove_filter():
function my_custom_filter( $text ) {
// Modify the text here
return $text;
}
add_filter( 'the_content', 'my_custom_filter' );
// Remove the 'the_content' filter
remove_filter( 'the_content', 'my_custom_filter' );
do_action() и apply_filters() используются для ручного запуска действия или фильтра. Это может быть полезно, когда надо запустить хук вне его обычного контекста.
// Trigger the 'my_custom_action' action
do_action( 'my_custom_action' );
// Trigger the 'my_custom_filter' filter
$modified_text = apply_filters( 'my_custom_filter', $text );
Наконец, WordPress также предоставляет ряд предопределенных действий и фильтров, которые разработчики могут использовать в своем коде. Эти предопределенные хуки называются «основными хуками» и задокументированы в кодексе WordPress.
Вот несколько примеров основных хуков в WordPress:
- wp_enqueue_scripts: запускается во внешнем интерфейсе, когда скрипты и стили ставятся в очередь.
- admin_enqueue_scripts: запускается в области администрирования, когда скрипты и стили ставятся в очередь.
- the_content: фильтр, используемый для изменения содержимого записи или страницы.
- wp_head: действие, используемое для добавления содержимого в раздел <head> веб-страницы.