在使用 WordPress 建站的過程當中,有些時候,我們需要迴圈輸出父頁面下的所有子頁面資訊。當然我們可以透過安裝外掛來實現,但是這麼簡單的功能也去下載外掛,安裝外掛,未免有點小題大做了,下面我們介紹一下不使用外掛透過程式碼實現的方法。
1. 切換到主題目錄,開啟 functions.php 檔案,新增如下程式碼:
function wp_get_all_children_pages(){
if ( is_page() ){
//當前頁面的 ID
$current_obj_id = get_queried_object_id();
$args = array(
'post_status' => 'publish',
'post_type' => 'page',
'post_parent' => $current_obj_id,
'orderby' => 'menu_order',
'order' => 'ASC',
'nopaging' => true,
);
$child_pages = get_posts($args);
$html = "";
foreach ($child_pages as $page) {
setup_postdata($page);
$url = get_permalink($page->ID);
$title = $page->post_title;
$html .= sprintf("%s", $url, $title);
}
wp_reset_postdata();
if ( !empty( $html ) ){
echo $html;
}
}
}
2. 在 page.php 中新增 wp_get_all_children_pages() 函式呼叫
這樣我們就輸出了父頁面下的所有子頁面標題列表,你還可以透過修改程式碼來顯示更多內容。