PHP: Sử dụng API WordPress để tạo một mã rút gọn để liệt kê các trang con

WordPress PHP

Chúng tôi đang làm việc trên một triển khai khá phức tạp cho một khách hàng doanh nghiệp ngay bây giờ. Trang web đang được xây dựng bằng WordPress nhưng có rất nhiều chuông và còi. Thông thường, khi tôi thực hiện loại công việc này, tôi muốn lưu mã tùy chỉnh để định vị lại sau này trên các trang web khác. Trong trường hợp này, tôi nghĩ đó là một chức năng hữu ích, tôi muốn chia sẻ nó với mọi người. Chúng tôi đang sử dụng Chủ đề Avada WordPress với Trình tạo trang kết hợp làm chủ đề mẹ và triển khai khá nhiều mã tùy chỉnh trong chủ đề con của chúng tôi.

WordPress đã có một số chức năng trong API của nó có thể được sử dụng để liệt kê các trang con, như wp_list_pages và get_pages. Vấn đề là chúng không trả lại đủ thông tin nếu bạn đang hy vọng tạo động một danh sách với một loạt thông tin.

Đối với khách hàng này, họ muốn đăng mô tả công việc và danh sách công việc đang tuyển dụng tự động được tạo theo thứ tự giảm dần trước ngày xuất bản của họ. Họ cũng muốn hiển thị một đoạn trích của trang.

Vì vậy, trước tiên, chúng tôi phải thêm hỗ trợ trích đoạn vào mẫu trang. Trong functions.php cho chủ đề của họ, chúng tôi đã thêm:

add_post_type_support ('trang', 'đoạn trích');

Sau đó, chúng tôi cần đăng ký một shortcode tùy chỉnh sẽ tạo danh sách các trang con, liên kết đến chúng và đoạn trích cho chúng. Làm điều này, chúng ta phải sử dụng WordPress Loop. Trong functions.php, chúng tôi đã thêm:

// Liệt kê các trang con trong một hàm List dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'No Records', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'Publishing_date', 'order' => 'DESC' ,); $ parent = new WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; cuối cùng; } khác {$ string = ' '. $ atts [' ifempty ']. " '; } wp_reset_postdata (); trả về chuỗi $; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Giờ đây, shortcode có thể được triển khai trên toàn bộ trang web để hiển thị các trang con có liên kết và đoạn trích. Sử dụng:

[list_subpages aclass = "button" ifempty = "Xin lỗi, chúng tôi hiện không có việc làm nào."] Danh sách công việc [/ list_subpages]

Kết quả là một danh sách các công việc đã được công bố không có thứ tự, đẹp đẽ, đó là các trang con dưới trang nghề nghiệp của họ.

Nếu không có công việc nào được xuất bản (không có trang con), nó sẽ xuất bản:

Xin lỗi, chúng tôi hiện không có bất kỳ cơ hội việc làm nào.

Nếu có công việc được xuất bản (trang con), nó sẽ xuất bản:

Danh sách công việc:

Bạn nghĩ gì?

Trang web này sử dụng Akismet để giảm spam. Tìm hiểu cách xử lý dữ liệu nhận xét của bạn.