NHANWEB

Quản lý và điều khiển 404 trong WordPress

404 wordpress404 wordpress

404 trong WordPress: Khi một URL được gửi đến website, việc đầu tiên hệ thống WordPress của bạn sẽ làm đó là phân tích chuỗi URL này và quyết định nội dung nào sẽ được hiển thị ra cho người dùng. WordPress sẽ lần lượt tìm kiếm Post, Page, taxonomies tương ứng với thứ nội dung cần thiết mà người dùng yêu cầu thông qua URL.

Trong trường hợp không có nội dung nào phù hợp với yêu cầu từ URL, hệ thống WordPress sẽ thực hiện việc chuyển hướng người dùng. Việc này được thực hiện thông qua 404 Not Found – và gọi trang 404.php tương ứng trong gói giao diện hiện tại mà bạn sử dụng.

Hành động này không những báo cho người dùng một thông tin về việc trang của họ không được tìm thấy, nó còn báo với công cụ tìm kiếm rằng nội dung này không tồn tại và deindex các dữ liệu cũ. Hành động chuyển hướng đến 404.php này được WordPress thực hiện thông qua action template_redirect

[code]do_action(‘template_redirect’);
[/code]

Nếu bạn muốn ghi lại(log) những URL 404 này, chúng ta có thể can thiệp vào action này và bổ sung thêm một đoạn mã cho phép ghi log như sau:
[code]function log_404_error()
{
if( is_404() )
{
global $wp_query;

// Custom permalinks by post name
if(!empty($wp_query->query[‘name’]))
{
$this->log_url( $wp_query->query[‘name’] );
}
// Search by post id
else if (!empty($wp_query->query[‘p’]))
{
$this->log_url( $wp_query->query[‘p’] )
}
// Search by category
else if(!empty($wp_query->query[‘category_name’]))
{
$this->log_url( $wp_query->query[‘category_name’] )
}
}
}
add_action(‘template_redirect’, array($this, ‘log_404_error’) );[/code]

Thay đổi trang 404.php bằng một trang khác

Bằng phương pháp can thiệp vào việc tải file 404.php, bạn có thể thay đổi đích đến 404.php bằng một trang khác phù hợp hơn.Chúng ta sử dụng filter template_include

[code]add_filter( ‘template_include’, ‘portfolio_page_template’, 99 );

function portfolio_page_template( $template )
{
if ( is_page( ‘portfolio’ ) )
{
$new_template = locate_template( array( ‘portfolio-page-template.php’ ) );
if ( ” != $new_template )
{
return $new_template ;
}
}

return $template;
}[/code] Bài viết này nhằm mục đích ghi chú lại thông tin và không phù hợp với bạn nào chưa bao giờ làm code nên nếu bạn không hiểu được nội dung này cũng bình thường thôi.

Exit mobile version