Wordpress短代码按父母ID显示所有子页面

时间:2018-08-24 03:57:15

标签: php wordpress loops shortcode

我正在为通过父母ID循环并显示所有子页面编写一个简短的代码,但是我不确定如何使循环更自定义。

这是我的代码: add_shortcode('home-page-listing','get_list');

function get_list( $atts ) {
    ob_start();
    $atts = shortcode_atts( array(
            'ids' => ''
    ), $atts );
    if($atts['ids']!='')
    {
        $id_array = explode(',',$atts['ids']);
        $homePages = new WP_Query( array(
                'post_type' => 'page',
                'post__in'=>$id_array,
                'order' => 'ASC',
                'orderby' => 'post__in',
                'posts_per_page' => -1
        ) );
        if ($homePages->have_posts()){?>
            <div class="">

                <?php while ( $homePages->have_posts() ) : $homePages->the_post(); ?>
                     //here's html template code
                <?php endwhile;
                wp_reset_postdata(); ?>
            </div>
        }
    }
}

现在我可以使用[home-page-listing id=1,2,3,4]显示所有选择的页面ID ,但是我想这样做:

[home-page-listing parentID=4]

循环浏览所有子页面并显示为字体,而是检查要显示的所有页面ID。

谢谢!

1 个答案:

答案 0 :(得分:0)

它很容易使用 post_parent 的参数 WP_Query 。请检查以下示例

$homePages = new WP_Query( array(
    'post_type' => 'page',
    'post_parent'=>$parentID,
    'order' => 'ASC',
    'orderby' => 'parent',
    'posts_per_page' => -1
) );

有关WP_Query click here的更多信息