在使用 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() 函式呼叫

這樣我們就輸出了父頁面下的所有子頁面標題列表,你還可以透過修改程式碼來顯示更多內容。