呼び出す側
$par2->gen_id = '18444';
$par2->post_type = 'reference' ;
echo "<br>\n".'ID: '.$par2->gen_id."<br>\n" ;
$user = new Model37642() ;
$user->generation($par2) ;
呼び出される側(クラス)
class Model37642 extends WP_Query
{
public function __construct()
{
//コンストラクタは、なぜ今回使わないのか。
}//endfunction
public function generation($par2)
{
//現世代を表示
echo '現世代'."<br>\n" ;
$par2->id = $par2->gen_id ;
$par2->k = 0 ;
$View_obj = new View37642a($par2) ;
//子孫を表示
echo '子孫'."<br>\n" ;
$this->children($par2) ;
}
public function children($par2)
{
//抽出処理
$k = $par2->k ;
$args = array(
'post_type' => $par2->post_type ,
'post_parent' => $par2->id ,
'orderby' => 'menu_order',
'order' => 'ASC',
);
$the_query = get_posts($args) ;
if(empty($the_query)){
return ;
}
//ループ処理
$k = $k +1 ;
foreach($the_query as $query){
$par2->id = $query->ID ;
$par2->k = $k ;
$View_obj = new View37642a($par2) ;
$this->children($par2) ;//再帰処理。
}
}//endfunction
}//endclass
class View37642a
{
public function __construct($par2)
{
$postslist = get_post($par2->id) ;
setup_postdata($postslist);
echo 'k='.$par2->k.' '.$par2->id ;
echo $postslist->post_title."<br>\n" ;
}//endfunction
}//endclass