Read more

    EO tự động là một trong những điều mà rất nhiều website đang nhắm đến. Việc điều hướng nội dung mất rất nhiều thời gian viết bài cũng như độ chính xác và mức độ tuyệt đối không cao. Tags (Thẻ) là một trong những dạng lưu trữ các bài viết có liên quan, giúp người dùng lần ra các thông tin một cách chính xác hơn. Vì thế liên kết các thẻ này trong nội dung là một điều nên làm. Đối với WordPress để làm điều này tự động là không khó, vì thế nên trong bài viết này mình sẽ chia sẻ bạn một cách để tạo ra các liên kết tự động đến các tag dựa vào từ khóa của các tag trong bài viết.

Tạo hàm thay đổi nội dung

Bạn mở file functions.php và thêm hàm sau vào trong cuối file.

function auto_link_tags($content){
  $post_tags = get_the_tags();
  if ($post_tags) {
      $i = 0;
      foreach($post_tags as $tag) {
        $tags[$i] = "~<(?:a\\s.*?</a>|[^>]+>)(*SKIP)(*FAIL)|\\b(?:\\b(" . $tag->name . ")\\b(?=[^>]*(<|$)))\\b~i";
        $tag_url = get_tag_link($tag->term_id);
        $tag_html[$i] = '<a href="' . $tag_url . '" title="$1">$1</a>';
        $i++;
      }
      $content = preg_replace($tags, $tag_html, $content,1);
  }
  return $content;
}


Hàm này có công dụng kiểm tra tất cả các tags, sau đó tìm các từ xuất hiện trong nội dung tương ứng với tên tag và thay nó bằng một link dẫn đến tag. Bạn chú ý số 1 trong đoạn preg_replace($tags, $tag_html, $content,1); số này cho biết là chỉ thay đổi một lần. nếu không nó sẽ thay đổi hết các từ tìm thấy trong nội dung, và điều này là không tốt đâu nhé.
Filter hàm vào Content

Cuối cùng là bạn hãy móc hàm này vào hook filter bằng cách thêm đoạn code như sau:

add_filter('the_content', 'auto_link_tags');

Lưu ý là điều này có thể làm chậm quá trình tải trang của bạn nếu như tag nhiều và khiến cho hàm lặp làm việc chậm. Tuy nhiên nếu chỉ có tầm dưới 1000 tag thì cũng không chậm lắm đâu.