В этой статье блога мы углубимся в различные методы имитации ошибки «404 Страница не найдена» для одной страницы и сообщений в файле function.php веб-сайта WordPress. Реализуя эти методы, вы можете создать собственный ответ для определенных URL-адресов, которые могут не существовать, улучшая взаимодействие с пользователем и повышая SEO-потенциал вашего веб-сайта. Мы предоставим примеры кода для каждого метода, чтобы помочь вам эффективно их реализовать.
Методы:
- Использование хука
template_redirect
:
Используя хукtemplate_redirect
, вы можете перехватить процесс загрузки шаблона и перенаправить определенные фрагменты в пользовательский шаблон 404.. Добавьте следующий код в файл function.php:
function custom_404_redirect() {
global $wp_query;
if (is_single('your-post-slug') || is_page('your-page-slug')) {
$wp_query->set_404();
status_header(404);
get_template_part('404-template');
exit();
}
}
add_action('template_redirect', 'custom_404_redirect');
- Изменение запроса.
Этот метод включает в себя изменение основного запроса, чтобы принудительно выдавать ответ 404 при запросе определенных пулов. Поместите следующий код в файл function.php:
function custom_404_query($query) {
if ($query->is_main_query() && (is_single('your-post-slug') || is_page('your-page-slug'))) {
$query->set_404();
status_header(404);
}
}
add_action('pre_get_posts', 'custom_404_query');
- Использование фильтра
template_include
.
Фильтрtemplate_include
позволяет переопределить файл шаблона, загружаемый для конкретного запроса. Вы можете использовать этот фильтр для отображения пользовательского шаблона 404 для определенных слагов. Добавьте следующий код в файл function.php:
function custom_404_template($template) {
if (is_single('your-post-slug') || is_page('your-page-slug')) {
$new_template = locate_template(array('404-template.php'));
if (!empty($new_template)) {
return $new_template;
}
}
return $template;
}
add_filter('template_include', 'custom_404_template');
- Перенаправление с помощью файла
.htaccess
.
Другой подход предполагает использование файла.htaccess
для перенаправления определенных фрагментов на пользовательскую страницу 404. Откройте файл.htaccess
и добавьте следующий код:
RewriteEngine On
RewriteBase /
RewriteRule ^your-post-slug$ /custom-404-page/ [R=301,L]
Не забудьте заменить your-post-slug
на фактический фрагмент, который вы хотите перенаправить.
Реализуя эти методы в файле function.php WordPress, вы можете эффективно имитировать ошибку «404 Страница не найдена» для конкретной отдельной страницы и фрагментов сообщений. Эта настройка улучшает взаимодействие с пользователем и гарантирует, что ваш веб-сайт будет предоставлять содержательные ответы на несуществующие URL-адреса. Не забывайте следить за производительностью своего веб-сайта и при необходимости обновлять слаги и шаблоны.