フォーラム

孫、曾孫ページのタイトルとIDを取得したい (1 件の投稿)

  1. acousticradio
    メンバー
    1 year前の投稿 #

    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");
    		}
    	}
    }

返信

ログイン しなければ投稿できません。

About this Topic