Bắt 404 sau khi thay đổi cấu trúc permalink từ /% postname% / thành /% danh mục% /% postname% /


7

Tôi đã tạo một trang web một thời gian trước đây và sau một số ngày, một số bài đăng đã được công cụ tìm kiếm lập chỉ mục. Hôm nay tôi đã thay đổi cấu trúc permalink từ /%postname%/sang /%category%/%postname%/.

Sau đó, khi mọi người đến trang web của tôi từ các công cụ tìm kiếm 404 page not found errorsẽ xuất hiện. Tôi muốn thay đổi tất cả các URL cũ thành URL cơ sở danh mục mới mà không có bất kỳ lỗi 404 nào.

Tôi làm nó như thế nào?
Nhân tiện, tôi sử dụng plugin Yoast.


Bạn đã thử tuôn ra các quy tắc viết lại của bạn?
Manny Fleurmond

Câu trả lời:


7

Điều đó xảy ra bởi vì WordPress đọc tên bài đăng cũ của bạn dưới dạng tên danh mục bây giờ - và nó không thể tìm thấy danh mục đó.

Giải pháp: lọc 404_templatevà cố gắng tìm bài và permalink của nó. Sau đó chuyển hướng.

<?php  # -*- coding: utf-8 -*-
/* Plugin Name: Redirect to category */

add_filter( '404_template', 't5_redirect_to_category' );

function t5_redirect_to_category( $template )
{
    if ( ! is_404() )
        return $template;

    global $wp_rewrite, $wp_query;

    if ( '/%category%/%postname%/' !== $wp_rewrite->permalink_structure )
        return $template;

    if ( ! $post = get_page_by_path( $wp_query->query['category_name'], OBJECT, 'post' ) )
        return $template;

    $permalink = get_permalink( $post->ID );

    wp_redirect( $permalink, 301 );
    exit;
}

Cảm ơn bạn đã chia sẻ điều này, nó chỉ giúp tôi tiết kiệm rất nhiều thời gian để viết chuyển hướng 301!
Zach Russell

chào, thêm chức năng trên ở đâu? tập tin riêng biệt? hoặc bên trong hàm.php? Tôi đang sử dụng chủ đề genesis.
JDesigns

@Jay Một plugin riêng. Đây là lý do tại sao mã bao gồm một tiêu đề plugin. :)
fuxia

0

Bạn cần thêm 301 chuyển hướng từ các url trang cũ của bạn sang các url mới.

Plugin này sẽ thực hiện những gì bạn muốn: http://wordpress.org/extend/plugins/redirection/

Vì nó phát hiện các thay đổi đối với permalinks của bạn và tự động thêm các chuyển hướng, bạn sẽ cần chuyển về cấu trúc permalink cũ, kích hoạt plugin và sau đó cập nhật permalinks của bạn sang cấu trúc mới.

Hi vọng điêu nay co ich.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.