Bạn tại một số thời điểm trong quá trình phát triển WordPress của bạn có thể cần phải cung cấp cho ai đó một nguồn cấp dữ liệu tùy chỉnh. Cho dù đó là cung cấp cho ai đó một API hay chỉ cung cấp trải nghiệm tốt hơn cho một nhóm người dùng nhất định, nó có thể dễ dàng thực hiện.
Tôi thích tạo một nguồn cấp dữ liệu mới thay vì mở rộng nguồn cấp dữ liệu mặc định khi tôi thấy phương pháp này đơn giản hơn một chút
add_feed chức năng WordPress
add_filter ('init', 'tj_init_custom_feed'); function tj_init_custom_feed () {// khởi tạo nguồn cấp dữ liệu add_feed ('custom-feed', 'tj_custom_feed'); }
Trong tệp functions.php trong chủ đề WordPress của bạn, hãy thêm mã ở trên. Tốt nhất là không nên gọi trực tiếp add_feed, chúng tôi sẽ thêm nó thông qua bộ lọc trên 'init'. Tham số đầu tiên trong lời gọi hàm được sử dụng để cung cấp URL sên cho nguồn cấp dữ liệu. Tham số thứ hai được sử dụng để buộc nó vào một tên hàm. Vì vậy, khi url đó được gọi (yourblogurl.com/custom-feed), nó thực thi hàm PHP tj_custom_feed.
Xin lưu ý rằng các quy tắc viết lại cho WordPress phải được xóa trước khi URL đó được nhận dạng đúng. Một cách đơn giản để ép buộc các quy tắc được xả sạch là vào WordPress Admin -> Settings -> Permalinks, và sau đó nhấp vào nút lưu thay đổi.
Xuất XML
Không có gì quá phức tạp về việc xuất ra mã nguồn cấp dữ liệu RSS / XML. Đầu tiên, loại nội dung được thiết lập thông qua chức năng tiêu đề php để nó có thể được hiển thị một cách thích hợp. Tiếp theo, chúng tôi lấy một số dữ liệu từ get_posts, lặp qua nó, và echo nó ra màn hình.
function tj_custom_feed () {header ("Kiểu nội dung: text / xml"); echo "\ n"; echo "\ n"; $ posts = get_posts (); foreach ($ post là $ post) {$ post_link = get_permalink ($ post-> ID); $ image = wp_get_attachment_image_src (get_post_thumbnail_id ($ post-> ID), 'đầy đủ'); echo ''; echo "\ t". $ post-> ID. "\ n"; echo "\ t". $ post-> post_date. "\ n"; echo "\ t". $ post_link. "\ n"; echo "\ t". esc_html ($ post-> post_title). "\ n"; echo "\ t". esc_html (strip_tags ($ post-> post_excerpt)). "\ n"; echo "\ t". $ image [0]. ""; echo ''; } echo ""; lối thoát; }