在使用 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() 函数调用

这样我们就输出了父页面下的所有子页面标题列表,你还可以通过修改代码来显示更多内容。