Top Ad unit 728 × 90

Tự động ghi File Sitemap.xml với PHP và MySQL

Chào các bạn!

Các bạn đang đi tìm cách để có thể tạo một sơ đồ website (hay còn gọi là sitemap.xml) để giúp các công cụ tìm kiếm như googlebot,... đến tìm kiếm được nhanh hơn trên website của bạn! Và bài viết này mình sẽ hướng dẫn các bạn các cách để bạn có thể tạo cho mình một file sơ đồ website của mình.

Trước tiên, khi đi vào hướng dẫn chi tiết thì mình sẽ giới thiệu qua cho các bạn về sitemap là gì? công dụng của nó như thế nào đối với các công cụ tìm kiếm.
(Ngoài lề chút: Để các bạn biết được cơ chế hoạt động của công cụ tìm kiếm google các bạn có thể tham khảo bài viết sau: Những điều cần biết về GoogleBot và Nếu bạn sử dụng blogger có thể tham khảo bài viết sau: Hướng dẫn tạo sitemap cho blogger).





Đúng như tên của nó, Sitemap là tập tin văn bản có chứa tất cả các URL của website. Nó cũng có thể chứa các siêu dữ liệu về mỗi URL, thông báo cho bạn khi nó mới được cập nhật. Toàn bộ công việc của nó là hướng dẫn cho các công cụ tìm kiếm thu thập thông tin của website một các hiệu quả và cập nhật những thay đổi trên website của bạn.

Sitemap có 2 loại:
  1. HTML Sitemap được tạo để sử dụng cho người đọc biết được sơ đồ bài viết của bạn trên website
  2. XML Sitemap được tạo để sử dụng cho các con bọ tìm kiếm.
Và trong bài này mình sẽ hướng dẫn cho các bạn các cách để tạo ra file sitemap XML. Chúng ta đi tìm hiểu thêm một vấn đề nữa trước khi đi vào việc khởi tạo sitemap nhé!

Cấu trúc của một file Sitemap

Cấu trúc của file sitemap như sau:
<?xml version="1.0" encoding="UTF-8"?>
<urlset
    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://haui.me/</loc>
        <lastmod>2018-06-11T16:15:05+00:00</lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0000</priority>
    </url>
</urlset>với
  • Thẻ url là thẻ cha chứa tất cả các nội dung
  • Thẻ loc là nơi chứa địa chỉ liên kết trên website của bạn.
  • Thẻ lastmod là thời gian cập nhật lần cuối là khi nào.
  • Thẻ changefrep là thẻ chứa chu trình thay đổi của bài viết,
  • Thẻ priorty là cấp độ quan trọng của bài viết. Giá trị của thẻ này dao động từ 0.0 -> 1.0 
  • Thẻ urlset là thẻ root bắt buộc.
 OK! Bây giờ mình vào các cách tạo nó nhé các bạn! Trong bài này mình sẽ giới thiệu cho các bạn hai cách.

Cách 1: (Dành cho các bạn không chuyên lập trình).

Các bạn thực hiện theo các bước sau nhé:
Bước 1: Các bạn truy cập vào địa chỉ sau: https://www.xml-sitemaps.com

Tự động ghi File Sitemap.xml với PHP và MySQL - thegioitrithuc.me
Bước 2: Bạn điền địa chỉ URL website của bạn vào ô "Your website URL" rồi bấm "Start" để hệ thống tạo cho bạn file sitemap.xml. Khi chạy xong các bạn chuyển sang bước 3.

Bước 3: Bạn dowload xml về và up lên thư mục gốc của website.
Bước 4: Vào công cụ SEO Google Webmaster Tools để cập nhật sitemap.

Vậy là mình đã hướng dẫn cho các bạn hoàn thiện các bước thực hiện tạo sitemap theo cách một. Và bây giờ chúng ta chuyển sang cách số 2, cách này danh cho các bạn chuyên lập trình.

Cách 2: Lập trình tạo sitemap với PHP và MySQL

Để thực hiện tạo sitemap cho website theo cách này các bạn thực hiện theo các bước sau:

Bước 1: Thực hiện lấy dữ liệu trong database ra.

Giả sử mình có bảng tên baiviet trong database có các trường cơ bản sau:
  1. id
  2. name
  3. ....
Thực hiện lấy thông tin từ database ra bằng câu lệnh sau:

// câu lệnh kết nối$host "localhost";$user "Tên đăng nhập vào phpMyAdmin";$pass "Mật khẩu đăng nhập vào phpMyAdmin";$database "Tên database";$con mysqli_connect($host$user$pass$database);$query "SELECT * FROM BAIVIET";$result mysqli_query($query);

Bước 2: Tạo sitemap từ dữ liệu đã được lấy ra

 Khi bạn đã lấy được dữ liệu ra rồi thì bây giờ chúng ta bắt đầu tạo sitemap. Để tao được sitemap các
bạn thực hiện như sau:


// Khai báo đường dẫn file sitemap.xml$xml_src './sitemap.xml';$dom = new DOMDocument();$dom->validateOnParse true;$dom->load($xml_src);

while (
$row mysqli_fetch_assoc($result)) {
  
    
// Tên thẻ chứa sitemap data
  
    
$parent_path "urlset";
  
    
// Bóc tách thẻ chứa sitemap data từ DOM Document
  
    
$parent $dom->getElementsByTagName("urlset");
  
    
// Load DOM Document vào DOMXPath
  
    
$selector = new DOMXPath($dom);
  
    
// Tìm kiếm thẻ có id = aritcle_{@id}
  
    
$ma "p" $row['id'];
  
    
$query '//*[@ma="' $ma '"]';
  
    
$next $selector->query($query);
  
    
// Nếu sitemap của bài viết chưa tồn tại thì tiến hành ghi vào sitemap.xml
  
    // Nếu đã tồn tại sitemap thì không ghi thêm vào
  
    
if ($next->length == 0) {
      
        
// convert ngày sửa bài viết sang chuẩn w3c
      
        
$actived_date date('Y-m-d\TH:i:sP'$row['created']);
      
        
// tạo xml string để render sitemap của bài viết
      
        
$element '

           <?xml version="1.0" encoding="UTF-8"?>

           <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

           <url ma="p' 
$row['id'] . '">

              <loc>' 
base_url(changeTitle($$row['name']) . '-p' $row['id'] . '.html') . '</loc>

              <lastmod>' 
$actived_date '</lastmod>
  
              <changefreq>daily</changefreq>

              <priority>1.0000</priority>

           </url>

           </urlset>'
;
      
        
// Khởi tạo một DOM Document để load xml element
      
        
$render = new DOMDocument();
      
        
$render->validateOnParse true;
      
        
// Load element vào DOM Document
      
        
$render->loadXML($element);
      
        
// lấy dữ liệu của bài viết từ element
      
        
$element $render->getElementsByTagName('url');
      
        
// import dữ liệu của element vào sitemap node
      
        
$element $dom->importNode($element[0], true);
      
        
// Insert dữ liệu sitemap vào thẻ urlset
      
        
$parent->item(0)->appendChild($element);
      
        
$parent->item(0)->appendChild($dom->createTextNode("\n"));
      
        
// Lưu lại dữ liệu vào file sitemap.xml
      
        
$dom->save($xml_src);
      
    }
  
}


Vậy là mình đã giới thiệu đến cho các bạn hoàn thiện hai cách tạo sitemap cho website của mình rồi! Nếu bạn thấy hay thì share cho người cùng làm nhé!
Tự động ghi File Sitemap.xml với PHP và MySQL Reviewed by Thế Giới Tri Thức on tháng 6 15, 2018 Rating: 5

Không có nhận xét nào:

All Rights Reserved by THẾ GIỚI TRI THỨC © 2018
Thiết kế bởi: THẾ GIỚI TRI THỨC

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.