Как я могу перенаправить пользователей на новую страницу 404 без плагина?

#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:

  1. Создайте страницу 404 в админке.

  2. создайте пользовательский шаблон страницы для этой страницы.

  3. добавьте свой пользовательский контент 404

  4. открыть 404.php файл в вашей теме.

  5. добавьте приведенный ниже код в начало этого файла.

     header("HTTP/1.1 301 Moved Permanently");
    
    header("Location: ".home_url('/404page/'));
    
    exit();
      
  6. попробуйте найти что-то, что не найдено, и вы будете перенаправлены на свою пользовательскую страницу 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

  1. Создайте частную страницу 404 и создайте с помощью WP bakery в admin.

  2. открыть 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.