WordPress:使用 get_pages() 排除父页面

WordPress: Exclude a parent page with get_pages()

我有以下代码:

<?php $pages = get_pages('exclude=10'); ?>
<?php foreach ( $pages as $page ) : ?>
    <?php echo $page->post_title; ?>
<?php endforeach; ?>

我想排除 页面 ID 10,但我仍然想包含 它的子页面。

但是,如果我尝试将它们包含在 include 参数中,它们仍然不会出现。

有几种默认方式wp query to get child pages of current page。但我更喜欢这个。您可以使用 WordPress get_results() 函数并编写一个 SQL 查询,如下所示

global $wpdb;

$child_pages = $wpdb->get_results("
    SELECT * FROM {$wpdb->posts} AS p 
    WHERE p.post_type LIKE 'page' 
    AND p.post_parent LIKE 0 
    AND p.id NOT IN (
        SELECT post_parent 
        FROM {$wpdb->posts} AS p 
        WHERE p.post_type = 'page' 
        AND p.post_parent != '0' 
        GROUP  BY post_parent
    )
");