• 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");
    		}
    	}
    }
  • トピック「孫、曾孫ページのタイトルとIDを取得したい」には新たに返信することはできません。