#wordpress #.htaccess #redirect
#wordpress #.htaccess #перенаправление
Вопрос:
У меня есть страница 404 в моей теме, но я не использую эту страницу. Я создал новую страницу 404 в WordPress с помощью wpbakery page builder. Мне нужно знать, как я могу перенаправлять пользователей на новую страницу 404 без плагина?
Комментарии:
1. Вы хотите перенаправить что-то вроде этого example.com/404
2. @Bhautik, да, я должен перенаправлять, когда пользователь вводит что-то не так
3. Я попытался в htaccess #ErrorDocument 404 mydomain.co/404 но это не работает
4. Вы можете попробовать эту функцию WordPress developer.wordpress.org/reference/functions/add_rewrite_rule
5. @Bhautik, да, я немного запутался, как использовать этот код в function.php
Ответ №1:
Вы можете использовать плагин 404page.
Или какой-нибудь код, адаптированный из этого плагина:
add_filter(
'404_template',
static function () {
global $wp_query;
$wp_query = new WP_Query();
$wp_query->query('page_id='.$pageID);
$wp_query->the_post();
$template = get_page_template();
rewind_posts();
add_filter(
'body_class',
static function ($classes) {
if (!in_array('error404', $classes, true)) {
$classes[] = 'error404';
}
return $classes;
}
);
return $template;
},
999
);
Комментарии:
1. Большое вам спасибо, это то, что я искал.
Ответ №2:
-
Создайте страницу 404 в админке.
-
создайте пользовательский шаблон страницы для этой страницы.
-
добавьте свой пользовательский контент 404
-
открыть 404.php файл в вашей теме.
-
добавьте приведенный ниже код в начало этого файла.
header("HTTP/1.1 301 Moved Permanently"); header("Location: ".home_url('/404page/')); exit();
-
попробуйте найти что-то, что не найдено, и вы будете перенаправлены на свою пользовательскую страницу 404
также вы можете попробовать это действие для перенаправления на пользовательскую страницу 404. поместите этот код в свой function.php файл. это вариант замены пункта 5 выше)
add_action( 'template_redirect', 'redreict_to_custom_404_page' );
function redreict_to_custom_404_page(){
// check if is a 404 error
if( is_404() ){
wp_redirect( home_url( '/404page/' ) );
exit();
}
}
Или если вы хотите создать страницу 404 с помощью WP bakery
-
Создайте частную страницу 404 и создайте с помощью WP bakery в admin.
-
открыть 404.php файл и получить содержимое страницы 404 с помощью кода ниже
$page_id = 123; // 404page id $page = get_post( $page_id ); $content = $page->post_content; echo $content;
Комментарии:
1. Позвольте мне попробовать это
2. Перенаправление на страницу 404 — это плохо, не делайте этого. Любые боты поисковой системы и т.д. Больше не получат правильный код статуса 404 для первоначально запрошенного URL.
3. @CBroe, у меня другой дизайн для страниц 404, поэтому я создаю страницу в панели администратора и создаю страницу с помощью wpbakery. Я должен перенаправить свою новую страницу 404.
4. Тогда вы должны каким-то образом сделать это, используя любой механизм, который WP предоставляет для этого, но не с внешним перенаправлением.
5. @NarenVerma проверьте мои правки. это не повлияет на ваш механизм wp 404.