WordPress 2.9.2を利用し、下記のような親~曾孫ページのような階層構造でページを作成しています。
親ページ34
|--子ページ46
| |--孫ページ51
| | |--曾孫ページ56●
| | |--曾孫ページ57●
| |--孫ページ52
| | |--曾孫ページ58●
| | |--曾孫ページ59●
| |--孫ページ53
| |--孫ページ54
| |--孫ページ55
|
|--子ページ47
| |--孫ページ60●
|--子ページ48
| |--孫ページ61●
|--子ページ49
| |--孫ページ62●
|--子ページ50
| |--孫ページ63●
「●」のついたページだけ、ページ名とページIDを取得して配列にセットしたいと思い、下記のようなコードで、思うような結果は得られたのですが、実行結果が表示されるまでものすごく時間がかかります。
どこがボトルネックになっているのか、おわかりになる方がいらっしゃいましたら、ご教示いただけませんでしょうか。
$pages = get_pages('child_of=34&sort_column=menu_order&sort_order=asc');
foreach($pages as $page) {
if ($page->post_parent != 34) continue;
$sub_pages = get_pages('child_of=' . $page->ID . '&sort_column=post_date&sort_order=desc');
foreach($sub_pages as $sub_page) {
if($sub_page->post_parent == 46){
$sub_sub_pages = get_pages('child_of=' . $sub_page->ID . '&sort_column=post_date&sort_order=desc');
$sub_pages = array_reverse($sub_pages,true);
foreach($sub_sub_page as $sub_sub_pages) {
array_push($values, "$sub_sub_page->post_title:$sub_sub_page->ID");
}
}else{
array_push($values, "$sub_page->post_title:$sub_page->ID");
}
}
}