Hướng dẫn Việt hóa label khi đã đặt tên không dấu

Bạn muốn tạo liên kết đẹp, chuẩn SEO cho label bắt buộc phải đặt tên không dấu và ngăn cách nhau bằng dấu "-" ví dụ bạn muốn tạo nhãn Thủ thuật blogspot thì muốn có liên kết đẹp bạn phải đặt tên label là thu-thuat-blogspot để ra đường link /search/label/thu-thuat-blogspot.

Tuy nhiên khi hiển thị sẽ ra tên tiếng Việt không dấu mà bạn đã tạo như vậy làm mất thẩm mỹ đôi khi còn gây nhầm lẫn cho người đọc và không dễ gì dễ nhớ tên. Như vậy bạn cần chuyển tên label này từ tiếng Việt không dấu thành tiếng Việt có dấu và bỏ dấu "-" chính giữa.

Bạn có thể sử dụng javascript chuyển đổi text như một số bài viết ở các trang khác hướng dẫn. Tuy nhiên trong bài này mình không sử dụng cách đó mà sử dụng cố định như cách bạn tạo menu. Tức là bạn sẽ chuyển dữ liệu gọi tên label từ tự động sang tên cố định mà bạn đặt hiển thị.

Mình lấy ví dụ trong cấu trúc HTML gọi tên label thường có dạng sau:


<a expr:href='data:label.url' expr:title='data:label.name'><data:label.name/></a>


Bây giờ bạn sẽ chuyển hóa liên kết này sang cố định như sau


<a expr:href='data:label.url' title='Tên label'>Tên label</a>


Nhưng với điều kiện trong thẻ if label đó tên gì, mình lấy ví dụ với label có tên thu-thuat-blogspot


<b:if cond='data:label.name == &quot;thu-thuat-blogspot&quot;'>

<a expr:href='data:label.url' title='Thủ thuật blogspot'>Thủ thuật blogspot</a>

</b:if>


Như vậy liên kết này phải bắt buộc nằm trong thẻ if với tên label không dấu mà bạn đã đặt và mấu chốt là chuyển hóa thẻ <data:label.name/> tự động sang tên cố định.


Bây giờ bạn cần biết tên label này nó hiển thị ở những trang nào đó là những trang như trang chủ, trang tìm kiếm, trang label, trang lưu trữ gọi chung là trang index và trang bài viết

Với trường hợp hiển thị trong bài viết thì nó lại liên quan đến Breadcrumb mà mình đã viết bài cách đây ít hôm. Nếu bạn chưa đọc có thể đọc bài viết Hướng dẫn tối ưu cho label hiển thị được tiếng Việt có dấu và tạo được link không dấu

Còn lại những trang index thì tên label sẽ được hiển thị ở hai nơi dưới mỗi bài đăng và breadcrumb ở trang tìm kiếm label

Mình lấy ví dụ với trang chủ thì tên label sẽ hiển thị dưới mỗi post và phần này sẽ được đặt trong đoạn <b:includable id='post' var='post'>...</b:includable>, mở rộng đoạn này ra bạn tìm cấu trúc của HTML bên trong, do mối theme được thiết kế khác nhau trong cách bố trí nhưng cách nhận biết thẻ <data:label.name/> nó phải được đặt trong vòng lặp <b:loop values='data:post.labels' var='label'>...</b:loop>cụ thể


<b:loop values='data:post.labels' var='label'>

  <a expr:href='data:label.url' expr:title='data:label.name'><data:label.name/></a>

</b:loop>


Thông thường người ta vẫn đặt label cuối nếu trong trường hợp bài viết có từ 2 label trở lên nên trong vòng lặp có thêm thẻ điều kiện như sau:


<b:loop values='data:post.labels' var='label'>

<b:if cond='data:label.isLast == &quot;true&quot;'>

  <a expr:href='data:label.url' expr:title='data:label.name'><data:label.name/></a>

</b:if>

</b:loop>


Bây giờ bạn cần sửa lại như sau:


<b:loop values='data:post.labels' var='label'>

<b:if cond='data:label.isLast == &quot;true&quot;'>

<b:if cond='data:label.name == &quot;thu-thuat-blogspot&quot;'>

  <a expr:href='data:label.url' title='Thủ thuật blogspot'>Thủ thuật blogspot</a>

</b:if>

</b:if>

</b:loop>


Cụ thể trong đoạn bên dưới


<b:loop values='data:post.labels' var='label'>

<b:if cond='data:label.isLast == &quot;true&quot;'>

// Đặt tên label

</b:if>

</b:loop>


Trong // Đặt tên label bạn sử dụng đoạn mẫu để thêm tên cố định cho lable


<b:if cond='data:label.name == &quot;ten-label-1&quot;'>

  <a expr:href='data:label.url' title='Tên label 1'>Tên label 1</a>

</b:if>

<b:if cond='data:label.name == &quot;ten-label-2&quot;'>

  <a expr:href='data:label.url' title='Tên label 2'>Tên label 2</a>

</b:if>

...


Với trường hợp hiển thị tại trang tìm kiếm label do breadcrumb thì mục này bạn sử trong đoạn <b:includable id='breadcrumb' var='posts'>...</b:includable>. Mình không biết trong breadcrumb của theme bạn như thế nào nhưng nếu bạn đã áp dụng theo bài viết của mình Tạo Breadcrumb thế nào để được index lên kết quả tìm kiếm Google thì bạn tìm nội dung bên trong có thẻ điều kiện <b:if cond='data:view.isMultipleItems'> cụ thể như sau:


<b:if cond='data:view.isMultipleItems'>

<div class='breadcrumbs'>

  <b:if cond='data:blog.pageName == &quot;&quot;'>

    <a expr:href='data:blog.homepageUrl' expr:title='data:homeMsg'><data:homeMsg/></a> &#8250;

    <a expr:href='data:olderPageUrl' expr:title='data:messages.morePosts'><data:messages.morePosts/></a>

  <b:else/>

    <a expr:href='data:blog.homepageUrl' expr:title='data:homeMsg'><data:homeMsg/></a> &#8250;

    <a expr:href='data:blog.canonicalUrl' expr:title='data:blog.pageName'><data:blog.pageName/></a>

  </b:if>

</div>


Bạn sửa thành như sau:


<b:if cond='data:view.isMultipleItems'>

<div class='breadcrumbs'>

  <b:if cond='data:blog.pageName == &quot;&quot;'>

    <a expr:href='data:blog.homepageUrl' expr:title='data:homeMsg'><data:homeMsg/></a> &#8250;

    <a expr:href='data:olderPageUrl' expr:title='data:messages.morePosts'><data:messages.morePosts/></a>

  <b:else/>

  <b:if cond='data:blog.searchLabel == &quot;ten-label-1&quot;'>

    <a expr:href='data:blog.homepageUrl' expr:title='data:homeMsg'><data:homeMsg/></a> &#8250;

    <a expr:href='data:blog.canonicalUrl' title='Tên label 1>Tên label 1</a>

  <b:else/>

   <b:if cond='data:blog.searchLabel == &quot;ten-label-2&quot;'>

    <a expr:href='data:blog.homepageUrl' expr:title='data:homeMsg'><data:homeMsg/></a> &#8250;

    <a expr:href='data:blog.canonicalUrl' title='Tên label 2>Tên label 2</a>

  <b:else/>

    <a expr:href='data:blog.homepageUrl' expr:title='data:homeMsg'><data:homeMsg/></a> &#8250;

    <a expr:href='data:blog.canonicalUrl' expr:title='data:blog.pageName'><data:blog.pageName/></a>

  </b:if></b:if></b:if>

</div>


Bạn lưu ý chỗ mình đánh dấu màu đỏ với điều kiện <b:if cond='data:blog.searchLabel == &quot;ten-label&quot;'>, cứ mỗi thẻ <b:if bạn lại thêm một thẻ  <b:else/> và kết thúc bằng một thẻ </b:if> dưới cùng.

Qua bài này bạn cần nắm được điều kiện của hai thẻ điều kiện như sau:

Hiển thị tên nhãn dưới mỗi post


<b:if cond='data:label.name == &quot;ten-label&quot;'>

  // Đặt tên label

</b:if>


Hiển thị tên nhãn trong Breadcrumb ở trang tìm kiếm label


<b:if cond='data:blog.searchLabel == &quot;ten-label&quot;'>

  // Đặt tên label

</b:if>


Bạn chịu khó thay thế để Blog của mình được SEO tốt hơn tuy chỉ là một điểm nhỏ nhưng cũng nâng được điểm SEO, quan trong hơn giúp người đọc dễ dàng đọc và nhớ tên label.