Notification texts go here Contact Us Buy Now!

Cách thêm Widget bài viết mới nhất có ảnh đại diện cực đẹp cho Blogspot (Sử dụng Blogger Feed API)

Cách thêm Widget bài viết mới nhất có ảnh đại diện cực đẹp cho Blogspot (Sử dụng Blogger Feed API)
Cách thêm Widget bài viết mới nhất có ảnh đại diện cực đẹp cho Blogspot (Sử dụng Blogger Feed API)

1. Giới thiệu

Mặc dù Blogger đã có sẵn widget "Bài đăng phổ biến" hoặc "Bài đăng mới", nhưng khả năng tùy biến giao diện của chúng rất hạn chế. Hôm nay, thuthuat.pro sẽ hướng dẫn các bạn cách sử dụng thư viện @deox/blogger-feed để tạo một Widget bài viết mới nhất hoàn toàn chủ động: tự lấy ảnh đại diện, tự chỉnh kích thước ảnh sắc nét và tốc độ tải cực nhanh nhờ kỹ thuật script defer.


Bài viết liên quan

2. Ưu điểm của phương pháp này

  • Tùy biến 100%: Bạn có thể chỉnh CSS để phù hợp với mọi giao diện (đặc biệt là Plus UI, Median UI...).

  • Ảnh đại diện sắc nét: Khắc phục lỗi ảnh mờ (s72-c) mặc định của Blogger.

  • Không làm chậm blog: Sử dụng cơ chế nạp không đồng bộ, giúp điểm Google PageSpeed của bạn không bị ảnh hưởng.

  • Vượt rào cản CORS: Sử dụng cơ chế JSONP giúp lấy dữ liệu mượt mà từ máy chủ Google.

3. Hướng dẫn chi tiết các bước thực hiện

Bước 1: Thêm thư viện vào mã nguồn

Để widget có thể hoạt động, bạn cần nạp "bộ não" xử lý dữ liệu. Hãy vào Chủ đề (Theme) > Chỉnh sửa HTML, tìm thẻ đóng </body> và dán đoạn mã sau ngay phía trên nó:


<script defer='defer' src='https://cdn.jsdelivr.net/npm/@deox/[email protected]/dist/blogger-feed.min.js'/>

Lưu ý: Chúng ta sử dụng defer để thư viện tải song song với nội dung trang, giúp tối ưu SEO.

Bước 2: Thêm Widget vào Bố cục (Layout)

  1. Truy cập vào mục Bố cục (Layout) trên bảng điều khiển Blogger.

  2. Chọn Thêm tiện ích (Add a Gadget) tại vị trí bạn muốn hiển thị (thường là Sidebar).

  3. Chọn loại HTML/JavaScript.

  4. Dán toàn bộ đoạn mã tối ưu dưới đây vào:


HTML
<div id="latest-posts-container">Đang tải dữ liệu...</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
  // Thay địa chỉ blog của bạn vào đây
  const myFeed = new BloggerFeed("https://www.thuthuat.pro", { jsonp: true });

  myFeed.posts.list({ maxResults: 5 }).then(posts => {
    let html = '<ul style="list-style:none; padding:0; margin:0;">';
    
    posts.forEach(post => {
      // Xử lý lấy ảnh đại diện sắc nét
      let thumb = (post.images && post.images.length > 0) ? post.images[0].url : (post.thumbnail ? post.thumbnail : "https://placehold.co/200x150?text=No+Image");

      // Chuyển ảnh từ 72px thành 200px để sắc nét hơn
      if (thumb.includes('googleusercontent.com')) {
          thumb = thumb.replace(/\/s[0-9]+(-c)?\//, '/s200-c/');
      }

      html += `
        <li style="display:flex; margin-bottom:15px; align-items:center; border-bottom:1px solid #eee; padding-bottom:10px;">
          <div style="flex-shrink:0; width:80px; height:60px; margin-right:12px; overflow:hidden; border-radius:6px;">
            <img src="${thumb}" style="width:100%; height:100%; object-fit:cover;" alt="${post.title}" onerror="this.src='https://placehold.co/80x60?text=Error'">
          </div>
          <a href="${post.url}" style="text-decoration:none; color:#1a1a1a; font-weight:600; font-size:14px; line-height:1.4;">
            ${post.title}
          </a>
        </li>`;
    });
    
    html += '</ul>';
    document.getElementById('latest-posts-container').innerHTML = html;
  }).catch(err => {
    document.getElementById('latest-posts-container').innerHTML = "Lỗi tải dữ liệu.";
  });
});
</script>

4. Giải thích kỹ thuật cho những bạn muốn học hỏi

Trong đoạn code trên, mình đã xử lý một lỗi rất phổ biến trên Blogger là ảnh đại diện bị mờ.

  • Blogger mặc định trả về link ảnh chứa tham số /s72-c/.

  • Dòng code .replace(/\/s[0-9]+(-c)?\//, '/s200-c/') sử dụng Regular Expression (Regex) để tìm và thay thế kích thước ảnh lên 200px giúp hiển thị cực nét trên mọi loại màn hình.

  • Hàm onerror giúp website của bạn trông chuyên nghiệp hơn bằng cách hiện ảnh dự phòng nếu bài viết đó lỡ tay xóa mất ảnh gốc.

5. Kết luận

Chỉ với vài dòng code, bạn đã có một widget bài viết mới nhất cực kỳ "xịn xò" cho Blogspot của mình. Nếu các bạn gặp lỗi trong quá trình cài đặt, hãy để lại bình luận bên dưới, mình sẽ hỗ trợ giải đáp ngay!

Copyright ©Thủ Thuật Pro

Đánh giá bài viết này?
Trung bình: 0/5 (0 lượt bình chọn)
Vui lòng chọn số sao

About the Author

Thủ Thuật Pro là Blog cập nhật và chia sẻ Thông tin - Thủ thuật - Tài liệu miễn phí.

إرسال تعليق

🌟 Chú ý, các thành viên cộng đồng có giá trị! 🌟

Chúng tôi rất vui khi bạn tham gia vào các cuộc thảo luận sôi nổi của chúng tôi. Để đảm bảo một môi trường tôn trọng và hòa nhập cho tất cả mọi người, chúng tôi vui lòng yêu cầu sự hợp tác của bạn với các nguyên tắc sau:
1. Tôn trọng quyền riêng tư : Vui lòng không chia sẻ thông tin nhạy cảm hoặc riêng tư trong nhận xét của bạn.

2. Lan tỏa sự tích cực : Chúng tôi duy trì chính sách không khoan nhượng đối với ngôn từ kích động thù địch hoặc ngôn ngữ lăng mạ. Hãy giữ cho cuộc trò chuyện của chúng ta tôn trọng và thân thiện.

3. Ngôn ngữ lựa chọn : Hãy thoải mái thể hiện bản thân bằng tiếng Anh hoặc tiếng Hindi. Hai ngôn ngữ này sẽ giúp chúng ta duy trì các cuộc thảo luận rõ ràng và mạch lạc.

4. Tôn trọng sự đa dạng : Để thúc đẩy một bầu không khí hòa nhập, chúng tôi vui lòng yêu cầu bạn tránh thảo luận về các vấn đề tôn giáo trong các bình luận của bạn.

Hãy nhớ rằng, những đóng góp của bạn rất có giá trị và chúng tôi đánh giá cao cam kết của bạn trong việc biến cộng đồng của chúng tôi thành một nơi chào đón mọi người. Chúng ta hãy tiếp tục học hỏi và phát triển cùng nhau thông qua các cuộc thảo luận mang tính xây dựng và tôn trọng.

Cảm ơn bạn đã trở thành một phần của cộng đồng sôi động của chúng tôi! 🌟
Biểu mẫu liên hệ email
Thông tin của bạn
Thông tin khác
Gửi yêu cầu
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.