Cách sử dụng PHP Simple HTML DOM trong WordPress lấy dữ liệu web khác 💡

Bạn đang làm website bằng WordPres và muốn hiển thị dữ liệu từ website khác lên web như kết quả xổ số hay ,bóng đá phải thường xuyên cập nhật liên tục.Bạn muốn tiết kiệm thời gian,không muốn phải cập nhật thủ công vậy thì sử dụng thư viện là một giải pháp hoàn toàn phù hợp. Trong WordPress, bạn có thể sử dụng thư viện PHP Simple HTML DOM để thu thập dữ liệu (scraping), chỉnh sửa HTML hoặc hiển thị xử lý nội dung từ các trang web khác.

1. Cài đặt thư viện PHP Simple HTML DOM trong WordPress

Để cài đặt và sử dụng php simple html dom trong WordPress bạn làm theo các bước sau nhé.

Bước 1: Tải file xuống từ GitHub hoặc trực tiếp từ https://sourceforge.net/projects/simplehtmldom/

Bước 2: Giải nén file simple_html_dom.php vào thư mục wp-content/plugins/your-plugin/ (hoặc wp-content/themes/your-theme nếu dùng trong theme).

Bước 3: Gọi thư viện vào file PHP Thêm đoạn code sau vào plugin hoặc theme của bạn:


require_once(plugin_dir_path(__FILE__) . 'simple_html_dom.php'); // plugin

require_once get_template_directory() . '/simple_html_dom.php'; // theme

Cách sử dụng PHP Simple HTML DOM trong WordPress

Dưới đây là một số ví dụ phổ biến về cách sử dụng thư viện này trong WordPress.

Ví dụ 1: Lấy dữ liệu từ một trang web


<?php
require_once get_template_directory() . '/simple_html_dom.php';

$url = "https://sonweb.net";
$html = file_get_html($url);
foreach ($html->find('h2') as $element) {
    echo $element->plaintext . '<br>';
}
?>

💡 Giải thích: Đoạn code trên lấy toàn bộ thẻ <h2> từ trang web sonweb.net và hiển thị nội dung của chúng.

Ví dụ 2: Lấy danh sách bài viết từ trang web khác


<?php
require_once get_template_directory() . '/simple_html_dom.php';
$url = "https://sonweb.net/blog";
$html = file_get_html($url);
$posts = [];</div>
foreach ($html->find('.post-title a') as $element) {
$posts[] = [
'title' => $element->plaintext,
'link'  => $element->href
];
}
// Hiển thị danh sách bài viết</div>
foreach ($posts as $post) {
echo '<a href="' . esc_url($post['link']) . '">' . esc_html($post['title']) . '</a><br>';
}

💡 Giải thích:

  • Tìm tất cả các liên kết trong phần có class .post-title a (giả định đây là tiêu đề bài viết).
  • Lưu vào mảng $posts, sau đó hiển thị danh sách bài viết với tiêu đề và liên kết.

Ví dụ 3: Lấy kết quả Bảng xếp hạng V-League 2024/2025

<?php 
function fetch_vleague_rankings() {
    // URL của trang web chứa bảng xếp hạng V-League
    $url = 'https://bongda24h.vn/vleague/bang-xep-hang-25.html';

    // Lấy nội dung HTML từ trang web
    $response = wp_remote_get($url);

    if (is_wp_error($response)) {
        return 'Không thể lấy dữ liệu bảng xếp hạng.';
    }

    $html = wp_remote_retrieve_body($response);

    // Sử dụng thư viện simple_html_dom để phân tích HTML
    require_once(plugin_dir_path(__FILE__) . 'simple_html_dom.php');

    $dom = new simple_html_dom();
    $dom->load($html);

    // Tìm bảng xếp hạng trong HTML
    $table = $dom->find('table[class=table-bxh]', 0);
    if (!$table) {
        return 'Không tìm thấy dữ liệu bảng xếp hạng.';
    }

    // Tạo bảng HTML để hiển thị trên trang WordPress
    $output = '<table class="vleague-table">';
    $output .= '<thead><tr><th>Hạng</th><th>Đội bóng</th><th>Trận</th><th>Thắng</th><th>Hòa</th><th>Thua</th><th>Điểm</th></tr></thead>';
    $output .= '<tbody>';

    foreach ($table->find('tr') as $row) {
        $output .= '<tr>';
        foreach ($row->find('td') as $cell) {
            $output .= '<td>' . esc_html($cell->plaintext) . '</td>';
        }
        $output .= '</tr>';
    }

    $output .= '</tbody></table>';

    return $output;
}
add_shortcode('vleague_rankings', 'fetch_vleague_rankings');
?>

💡 Giải thích:

  • Lấy dữ liệu HTML từ trang web bongda24h.vn bằng wp_remote_get()
  • Trích xuất nội dung HTML bằng wp_remote_retrieve_body()
  • Sử dụng thư viện PHP Simple HTML DOM để phân tích HTML.
  • Tìm bảng xếp hạng V-League trong HTML.
  • Tạo bảng HTML để hiển thị dữ liệu trên trang WordPress.
  • Định nghĩa shortcode để chèn bảng xếp hạng vào bài viết/trang.

Ghi Chú

PHP Simple HTML DOM chỉ phân tích HTML tĩnh, tức là nó lấy dữ liệu HTML ngay khi trang được tải, nhưng không thể xử lý JavaScript động.

Dùng cURL + Puppeteer / Selenium (các công cụ có thể chạy trình duyệt và thực thi JavaScript).

Hoặc sử dụng API chính thức của trang web (nếu có).

Kết luận

PHP Simple HTML DOM là thư viện giúp bạn dễ dàng thu thập, chỉnh sửa và hiển thị nội dung HTML trong WordPress. Nếu bạn cần xử lý nội dung từ bên ngoài hoặc làm việc với HTML một cách linh hoạt, thư viện này là một công cụ hữu ích.

Bạn muốn tích hợp nó vào plugin, theme hay chức năng nào cụ thể trong WordPress? 🚀

5/5 - (1 bình chọn)

Trả lời

Nhắn tin qua Zalo

0932644183