PHP : WordPress API를 사용하여 하위 페이지를 나열하는 단축 코드 작성
우리는 현재 엔터프라이즈 클라이언트를위한 매우 복잡한 구현 작업을하고 있습니다. 이 사이트는 WordPress로 구축되었지만 수많은 종소리와 휘파람이 있습니다. 종종 이런 유형의 작업을 수행 할 때 나중에 다른 사이트에서 용도를 변경할 수 있도록 사용자 지정 코드를 저장하고 싶습니다. 이 경우 정말 유용한 기능이라고 생각해서 세상과 공유하고 싶었습니다. 우리는 Fusion Page Builder를 사용한 Avada WordPress 테마 부모 테마로 사용하고 자식 테마에 많은 사용자 지정 코드를 배포합니다.
WordPress에는 이미 wp_list_pages 및 get_pages와 같은 하위 페이지를 나열하는 데 사용할 수있는 API에 몇 가지 기능이 있습니다. 문제는 많은 정보로 목록을 동적으로 생성하려는 경우 충분한 정보를 반환하지 않는다는 것입니다.
이 고객의 경우 채용 설명을 게시하고 채용 공고 목록이 게시 날짜의 내림차순으로 자동 생성되도록하기를 원했습니다. 그들은 또한 페이지의 일부를 표시하고 싶었습니다.
그래서 먼저 페이지 템플릿에 발췌 지원을 추가해야했습니다. 테마에 대한 functions.php에 다음을 추가했습니다.
add_post_type_support ( '페이지', '발췌');
그런 다음 하위 페이지 목록, 링크 및 발췌 부분을 생성하는 사용자 지정 단축 코드를 등록해야했습니다. 이렇게하세요, 우리는 워드 프레스 루프. functions.php에 다음을 추가했습니다.
// 목록에 하위 페이지 나열 function dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ( 'ifempty'=> '레코드 없음', '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 ($ 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. = ' '; 끝까지; } else {$ string = ' '. $ atts ['ifempty '].' '; } wp_reset_postdata (); return $ string; } add_shortcode ( 'list_subpages', 'dknm_list_child_pages');
이제 링크와 발췌 부분이있는 하위 페이지를 표시하기 위해 사이트 전체에 단축 코드를 구현할 수 있습니다. 용법:
[list_subpages aclass = "button"ifempty = "죄송합니다. 현재 채용중인 일자리가 없습니다."] 채용 정보 [/ list_subpages]
그 결과 커리어 페이지 아래의 하위 페이지 인 게시 된 작업의 깔끔하고 순서없는 목록이 생성됩니다.
게시 된 작업이없는 경우 (하위 페이지 없음) 다음을 게시합니다.
죄송합니다. 현재 구인 정보가 없습니다.
게시 된 작업 (하위 페이지)이있는 경우 다음을 게시합니다.
작업 목록 :