• 29-10-2024, 09:39:31
    #1
    Arkadaşlar merhaba. Ya bulamıyorum bir eklentimiydi bir özellikmiydi ama şöyle bişey vardı

    Xx.com/deneme diye linkiniz olsun xx.com/dene adresine gidince mesela 404 verdirmeden en yakın linke yani /deneme ye gidiyordu. Bunu nasıl yapıyorduk?
  • 29-10-2024, 09:42:17
    #2
    301 yönlendirmesi değil mi bu
  • 29-10-2024, 09:47:27
    #3
    dener misiniz
    function custom_404_redirect() {
        if (is_404()) {
            $request_uri = $_SERVER['REQUEST_URI'];
            $path_parts = explode('/', trim($request_uri, '/'));
    
            $keywords = explode('-', end($path_parts));
    
            foreach ($keywords as $keyword) {
                $args = array(
                    'post_type' => 'post',
                    'posts_per_page' => 1,
                    'orderby' => 'rand',
                    's' => $keyword,
                );
    
                $query = new WP_Query($args);
                if($query->have_posts()) {
                    $query->the_post();
                    $redirect_url = get_permalink();
                    wp_reset_postdata();
                    wp_redirect($redirect_url);
                    exit;
                }
    
                wp_reset_postdata();
            }
        }
    }
    add_action('template_redirect', 'custom_404_redirect');
    veya daha mantıklısı böyle olacaktır düzenleme gerekebilir

    function custom_404_redirect($query) {
        if (!$query->is_main_query() || (isset($query->query_vars['name']) && !empty($query->query_vars['name']) && $query->have_posts())) {
            return;
        }
    
        $request_uri = $_SERVER['REQUEST_URI'];
        $path_parts = explode('/', trim($request_uri, '/'));
        
        $keywords = explode('-', end($path_parts));
    
        foreach ($keywords as $keyword) {
            $args = array(
                'post_type' => 'post',
                'posts_per_page' => 1,
                'orderby' => 'rand',
                's' => $keyword,
            );
    
            $query = new WP_Query($args);
            if ($query->have_posts()) {
                $query->the_post();
                $redirect_url = get_permalink();
                wp_reset_postdata();
                wp_redirect($redirect_url);
                exit;
            }
    
            wp_reset_postdata();
        }
    }
    add_action('parse_request', 'custom_404_redirect');
  • 29-10-2024, 10:27:11
    #4
    Misafir adlı üyeden alıntı: mesajı görüntüle
    dener misiniz
    function custom_404_redirect() {
        if (is_404()) {
            $request_uri = $_SERVER['REQUEST_URI'];
            $path_parts = explode('/', trim($request_uri, '/'));
    
            $keywords = explode('-', end($path_parts));
    
            foreach ($keywords as $keyword) {
                $args = array(
                    'post_type' => 'post',
                    'posts_per_page' => 1,
                    'orderby' => 'rand',
                    's' => $keyword,
                );
    
                $query = new WP_Query($args);
                if($query->have_posts()) {
                    $query->the_post();
                    $redirect_url = get_permalink();
                    wp_reset_postdata();
                    wp_redirect($redirect_url);
                    exit;
                }
    
                wp_reset_postdata();
            }
        }
    }
    add_action('template_redirect', 'custom_404_redirect');
    veya daha mantıklısı böyle olacaktır düzenleme gerekebilir

    function custom_404_redirect($query) {
        if (!$query->is_main_query() || (isset($query->query_vars['name']) && !empty($query->query_vars['name']) && $query->have_posts())) {
            return;
        }
    
        $request_uri = $_SERVER['REQUEST_URI'];
        $path_parts = explode('/', trim($request_uri, '/'));
        
        $keywords = explode('-', end($path_parts));
    
        foreach ($keywords as $keyword) {
            $args = array(
                'post_type' => 'post',
                'posts_per_page' => 1,
                'orderby' => 'rand',
                's' => $keyword,
            );
    
            $query = new WP_Query($args);
            if ($query->have_posts()) {
                $query->the_post();
                $redirect_url = get_permalink();
                wp_reset_postdata();
                wp_redirect($redirect_url);
                exit;
            }
    
            wp_reset_postdata();
        }
    }
    add_action('parse_request', 'custom_404_redirect');
    nereye eklemeliyim hocam bu kodu?
  • 29-10-2024, 10:38:33
    #5
    WP 404 Auto Redirect to Similar Post
    Ben bu beklentiyi kullanıyorum işinizi görür.