PHP: Sử dụng API WordPress để tạo một mã rút gọn để liệt kê các trang con
Hiện tại, chúng tôi đang thực hiện một triển khai khá phức tạp cho khách hàng doanh nghiệp. Trang web này đang được xây dựng bằng WordPress nhưng có rất nhiều tính năng thú vị. Thông thường, khi tôi thực hiện loại công việc này, tôi thích lưu mã tùy chỉnh để sử dụng 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 và 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 Fusion Page Builder làm chủ đề gốc và triển khai khá nhiều mã tùy chỉnh trong chủ đề con của chúng tôi.
WordPress đã có sẵn một số chức năng trong API có thể được sử dụng để liệt kê các trang con, như wp_list_pages và get_pages. Vấn đề là họ không trả lại đủ thông tin nếu bạn muốn tạo một danh sách động với nhiều 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ơ hội việc làm tự động được tạo theo thứ tự giảm dần trước ngày đăng. 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ợ đoạn trích vào mẫu trang. Trong hàm.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 mã ngắn tùy chỉnh để 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 được điều này, chúng ta phải sử dụng WordPress Loop. Trong hàm.php, chúng tôi đã thêm:
// Liệt kê các trang con trong Danh sách function dknm_list_child_pages( $atts, $content = "" ) { Global $post; $atts = shortcode_atts( array( 'ifempty' => 'Không có bản ghi', 'aclass' => '' ), $atts, 'list_subpages' ); $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'orderby' => 'publish_date', 'order' => 'DESC' , ); $parent = WP_Query mới( $args ); if ( $parent->have_posts() ) { $string .= $content.' '; trong khi ( $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, mã ngắn 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. Cách sử dụng:
[list_subpages aclass="button" ifempty="Xin lỗi, hiện tại chúng tôi không có tuyển dụng nào còn trống."] 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 xuất bản đẹp đẽ, rõ ràng, không có thứ tự, là các trang con trong trang nghề nghiệp của họ.
Nếu không có việc làm nào được công bố (không có trang con), nó sẽ xuất bản:
Xin lỗi, hiện tại chúng tôi không có tuyển dụng nào còn trống.
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:
- Trang con mới nhất – Trích từ Trang Trẻ em
- Trang con tiếp theo – Trích từ Trang Trẻ em
- Trang con tiếp theo – Trích từ Trang Trẻ em