Hướng dẫn xóa bỏ chữ /tag/ trong đường dẫn

Cập nhật lần cuối 30/06/2017 by trong WordPress vào 30/06/2017 có 442 Views

Mặc định trong đường dẫn của Thẻ (Post tag) có chữ /tag/ nhiều khi để phục vụ cho việc SEO mà nhiều người cần phải xóa bỏ chữ đó đi. Mục đích làm cho đường dẫn thân thiện trong SEO hơn

Lời cảnh báo

Mới đầu vào đã cảnh báo rồi thì ai dám làm. Nhưng thực sự cần cảnh báo trước khi các bạn áp dụng việc xóa chữ tag. Mặc dù phục vụ cho SEO nhưng khi bạn đã xóa chữ tag đi đồng nghĩa với đường dẫn của tag sẽ giống với đường dẫn của PostPage vì vậy trong quá trình viết bài các bạn phải thật chú ý đến các đường dẫn để tránh trùng lặp nếu không sẽ gây lỗi đường dẫn

Các bài viết khác có thể bạn quan tâm:

  1. Xóa bỏ /category/ và slug category cha khỏi đường dẫn category tại đây
  2. Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce tại đây
  3. Cách cài đặt base của danh mục sản phẩm giống với base của trang sản phẩm tại đây
  4. Hướng dẫn xóa product, product-category trong đường dẫn của woocommerce tại đây

Cách xóa bỏ chữ tag trong đường dẫn

Để xóa bỏ chữ tag trong đường dẫn việc cần làm duy nhất của bạn là để mặc định và thêm đoạn code sau vào file functions.php của theme đang chạy, sau đó vào Setting->Permalinks -> Save change để Update lại permalink là được.

/*
* Remove tag in URL
* Code by levantoan.com
*/
add_filter( 'term_link', 'devvn_post_tag_permalink', 10, 3 );
function devvn_post_tag_permalink( $url, $term, $taxonomy ){
    switch ($taxonomy):
        case 'post_tag':
            $taxonomy_slug = 'tag';
            if(strpos($url, $taxonomy_slug) === FALSE) break;
            $url = str_replace('/' . $taxonomy_slug, '', $url);
            break;
    endswitch;
    return $url;
}
// Add our custom product cat rewrite rules
function devvn_post_tag_rewrite_rules($flash = false) {
    $terms = get_terms( array(
        'taxonomy' => 'post_tag',
        'post_type' => 'post',
        'hide_empty' => false,
    ));
    if($terms && !is_wp_error($terms)){
        $siteurl = esc_url(home_url('/'));
        foreach ($terms as $term){
            $term_slug = $term->slug;
            $baseterm = str_replace($siteurl,'',get_term_link($term->term_id,'post_tag'));
            add_rewrite_rule($baseterm.'?$','index.php?tag='.$term_slug,'top');
            add_rewrite_rule($baseterm.'page/([0-9]{1,})/?$', 'index.php?tag='.$term_slug.'&paged=$matches[1]','top');
            add_rewrite_rule($baseterm.'(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?tag='.$term_slug.'&feed=$matches[1]','top');
        }
    }
    if ($flash == true)
        flush_rewrite_rules(false);
}
add_action('init', 'devvn_post_tag_rewrite_rules');
/*Sửa lỗi khi tạo mới tag bị 404*/
add_action( 'created_post_tag', 'devvn_new_post_tag_edit_success', 10, 2 );
function devvn_new_post_tag_edit_success( $term_id, $taxonomy ) {
    devvn_post_tag_rewrite_rules(true);
}

Mọi việc đã hoàn tất. Hãy nhớ update lại permalink và tận hưởng thành quả nào 🙂

Chúc các bạn thành công ^^

Hướng dẫn xóa bỏ chữ /tag/ trong đường dẫn
4.3 (86.67%) 6 votes
  • Bình luận
Có thể bạn quan tâm
x