Đoạn trích ngắn (post snippet) có thể hiểu như phần mở bài của mỗi bài đăng khi hiển thị ngoài trang index. Ngoài tiêu đề giật tít ra, việc bạn viết mở bài hay sẽ là một cơ hội cực lớn để thu hút người đọc nhấn vào xem bài viết. Trong bài viết này tôi sẽ cùng các bạn tìm hiểu sơ qua về vấn đề này
Để lấy được đoạn trích ngắn ta có thể dùng rất nhiều cách như
- Dùng thẻ gọi dữ liệu cơ bản của blogger
- Tải feed lấy nội dung theo label và cắt chuỗi
- Lấy nội dung trong div .post-body và cắt chuỗi
I. Dùng thẻ gọi dữ liệu
Đây là cách đơn giản nhất để lấy được đoạn trích., bloger cung cấp cho ta thẻ data:post.snippet để lấy đoạn trích ngắn và data:post.longSnippet để lấy đoạn trích dài
Theo đó với auto readmore không sử dụng js, đoạn trích thường được đặt trong div có class là resumo. Tôi sẽ sử dụng thẻ điều kiện để lấy dữ liệu như sau
+ Với đoạn trích ngắn
<div class='resumo'> <span class='post-summary'> <b:if cond='data:post.snippet'> <data:post.snippet/> </b:if> </span> </div>
Kết quả thu được
+ Với đoạn trích dài
<div class='resumo'> <span class='post-summary'> <b:if cond='data:post.snippet'> <data:post.longSnippet/> </b:if> </span> </div>
Kết quả thu được
* Nếu bạn vẫn chưa hài lòng ?
Đừng lo, blogger còn cung cấp cho bạn một hàm để cắt chuỗi đoạn trích nữa. Cú pháp như sau
snippet(string, options) : Produces a short snippet from an HTML string.
options: Object specifying the snippeting options, which are:
- links: boolean for whether to preserve anchors/links in the snippet. Defaults to true.
- linebreaks: boolean for whether to preserve linebreaks (tags) in the snippet. Defaults to true.
- ellipsis: boolean for whether to append an ellipsis (…) to the end of the snippet. Defaults to true.
- length: Number specifying the maximum length of the snippet.
Theo đó ví dụ tôi muốn đoạn trích dài 300 kí tự và không chứa link trong đoạn trích code sẽ như sau
<div class='resumo'> <span class='post-summary'> <b:if cond='data:post.snippet'> <b:eval expr='snippet(data:post.body, {length: 300, links: false})' /> </b:if> </span> </div>
Kết quả thu được
Việc sử dụng hàm cắt chuỗi này sẽ giúp bạn cố định được bố cục của bài đăng, tránh đoạn trích quá dài gây tràn div
Đây là cách được khuyên dùng vì không đụng tới js và có thể tùy biến theo ý thích
II. Sử dụng javascript
Đương nhiên phương pháp này không được khuyên dùng vì số lượng bài đăng trên trang chính càng nhiều thì quá trình lấy dữ liệu và cắt chuỗi càng lâu khiến trang bị chậm, nhưng trong khuôn khổ bài viết tôi vẫn giới thiệu cho bạn biết thêm
Ví dụ div chứa đoạn trích của tôi trống như sau
<div class='resumo'> <span class='post-summary' expr:data-url='data:post.url'/> </div>
Bắt buộc có đoạn expr:data-url='data:post.url' để lấy url. Tôi sẽ chèn thêm code js trước thẻ đóng </body>
<script type='text/javascript'>//<![CDATA[ $(document).ready(function(t) { t(".post-summary").each(function() { var a = t(this), n = a.attr("data-url"); t.get(n, function(n) { var r = t(n).find(".post-body").text().substr(0, 150); a.html("<p>" + r + "...</p>") }, "html") }) }); //]]></script>
Giá trị 150 chính là số lượng kí tự bạn muốn cắt chuỗi
Kết quả thu được
KẾT LUẬN: như vậy qua bài viết này bạn đã biết thêm được một thẻ gọi dữ liệu quan trọng của blogger nữa, chắc bài này không quá làm khó được bạn
Để lại bình luận nếu gặp khó khăn và chúc thành công nhé !
1. Không vi phạm luật pháp nước CHXHCN Việt Nam
2. Không vi phạm thuần phong mỹ tục Việt Nam
3. Không bàn luận vấn đề liên quan đến tôn giáo, chính trị
4. Không đả kích, chửi bới hay đưa ra những lời nói không phù hợp với mục tiêu của website
5. Không bình luận với mục đích quảng cáo, trao đổi, mua bán
6. Khuyến khích sử dụng Tiếng Việt có dấu, hạn chế sử dụng tiếng lóng, viết tắt
7. Khi cần sự trợ giúp, vui lòng miêu tả chi tiết lỗi và để lại link đính kèm, tránh nói chung chung gây mất thời gian cho đôi bên