При разработке WordPress запрос is_home обычно используется для определения того, является ли текущая страница домашней. Однако существуют определенные ограничения при использовании запроса is_home в ловушке инициализации. В этой статье мы рассмотрим альтернативные методы достижения той же функциональности и предоставим примеры кода для каждого подхода.
Метод 1: использование перехватчика действия wp
Один альтернативный метод — использовать перехват действия wp вместо перехватчика init. Перехватчик действия wp запускается после завершения загрузки WordPress, но до отправки заголовков. Вот пример фрагмента кода:
function my_custom_function() {
if (is_home()) {
// Perform actions for the homepage
}
}
add_action('wp', 'my_custom_function');
Метод 2: использование перехватчика действия template_redirect
Другой подход — использовать перехват действия template_redirect. Этот хук выполняется непосредственно перед тем, как WordPress определит, какой шаблон загружать. Вот пример фрагмента кода:
function my_custom_function() {
if (is_home()) {
// Perform actions for the homepage
}
}
add_action('template_redirect', 'my_custom_function');
function my_custom_function() {
if (is_front_page()) {
// Perform actions for the homepage
}
}
add_action('init', 'my_custom_function');
Метод 4: объединение перехватчика действия wp и условных тегов
Вы можете объединить перехватчик действия wp с условными тегами для более конкретной функциональности. Вот пример фрагмента кода:
function my_custom_function() {
if (is_front_page() && is_home()) {
// Perform actions for the homepage
}
}
add_action('wp', 'my_custom_function');