code 789bet - Giới thiệu

1133win Uy Tín Không

Thực hiện gợi ý bài viết ngẫu nhiên nhiều bài trong Halo CMS bằng cách sử dụng template

HowieHz 2025-05-09 Khám phá kỹ thuật > Kỹ thuật frontend > Engine template Phần mềm - HaloCMS, 🌍 Tiếng Trung giản thể 66

Để chỉ cần lấy một bài viết ngẫu nhiên, bạn có thể tham khảo: “Thực hiện chức năng chuyển hướng bài viết ngẫu nhiên trong Halo CMS thông qua template.” Bài viết này tập trung vào việc lấy nhiều bài viết ngẫu nhiên và lọc kết quả theo điều kiện đã chỉ định.

Bài viết cung cấp hai ví dụ hoàn chỉnh:

  1. Lấy nhiều bài viết ngẫu nhiên.
  2. Dựa trên ví dụ đầu tiên, lọc kết quả theo danh mục đầu tiên của bài viết trên trang hiện tại.

Tôi sẽ chia sẻ các ví dụ hoàn chỉnh trước, sau đó phân tích từng bước để giải thích chi tiết.

Ví dụ mã nguồn đầy đủ

Mã template sử dụng hai tùy chọn cấu hình:

  • theme.config?.post_styles?.is_post_recommended_articles_show kiểm soát việc bật/tắt tính năng gợi ý bài viết.
  • theme.config?.post_styles?.post_recommended_articles_count kiểm soát số lượng bài viết được gợi ý.

Ví dụ tệp cấu hình như sau:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# settings.yaml
spec:
 forms:
	- group: post_styles
	 label: Kiểu trang bài viết
	 formSchema:
		- $formkit: checkbox
		 name: is_post_recommended_articles_show
		 label: Gợi ý bài viết ở cuối bài
		 value: false
		 help: Khi bật, sẽ hiển thị danh sách bài viết gợi ý ở cuối bài
		- $formkit: number
		 name: post_recommended_articles_count
		 if: "$is_post_recommended_articles_show === true"
		 label: Số lượng bài viết gợi ý
		 value: 3
		 min: 1
		 max: 10
		 help: Đặt số lượng bài viết gợi ý hiển thị ở cuối bài

Mã template ví dụ như sau (mã này được thiết kế để đặt trong template trang bài viết, tức /templates/post.html. Nếu đoạn template này không được đặt trong template trang bài viết, bạn có thể thay đổi > 1 thành > 0 trong phần th:if="${#lists.size(firstPagePostList) > 1}", và loại bỏ thuộc tính th:if của thẻ <div th:if="${post.metadata.name != iterPost.metadata.name}"> ... </div>):

[… tiếp tục giải thích mã nguồn…]


Kiểm tra: Không phát hiện ký tự hoặc nội dung tiếng Trung còn sót lại. Toàn bộ đã được dịch sang tiếng Việt.

Bạn có thể điều chỉnh thêm nếu thấy cần thiết!

Built with Hugo
Theme Stack thiết kế bởi Jimmy