WordPressで固定ページ一覧を取得する
WordPressでナビゲーションが固定されていれば手書きでも良いのですが、ページ追加で自動展開されるナビゲーションにする場合は固定ページ一覧が欲しいときが有ります。
PHPソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $args = array ( 'post_type' => 'page' , ); $page = get_pages( $args ); $naviArray = array (); foreach ( $page AS $array ){ if ( $array ->post_parent == 0){ //親ページは0 $naviArray [ $array ->ID] = array ( 'ID' => $array ->ID , 'post_title' => $array ->post_title , 'post_name' => $array ->post_name ); } else { $naviArray [ $array ->post_parent][ 'child' ][] = array ( //子ページは親ページ配列に追加 'ID' => $array ->ID , 'post_title' => $array ->post_title , 'oya_postname' => $naviArray [ $array ->post_parent][ 'post_name' ] ); } } |
結果はこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | Array ( [5] => Array ( [ID] => 5 [post_title] => MENU 1 [post_name] => menu1 [child] => Array ( [0] => Array ( [ID] => 17 [post_title] => CHILD1-1 [oya_postname] => menu1 ) [1] => Array ( [ID] => 19 [post_title] => CHILD1-2 [oya_postname] => menu1 ) [2] => Array ( [ID] => 21 [post_title] => CHILD1-3 [oya_postname] => menu1 ) ) ) [7] => Array ( [ID] => 7 [post_title] => MENU 2 [post_name] => menu2 [child] => Array ( [0] => Array ( [ID] => 23 [post_title] => CHILD2-1 [oya_postname] => menu2 ) [1] => Array ( [ID] => 25 [post_title] => CHILD2-2 [oya_postname] => menu2 ) ) ) [9] => Array ( [ID] => 9 [post_title] => MENU 3 [post_name] => menu3 ) ) |
ナビゲーションに外部URLを追加したい
1 2 3 4 5 | $naviArray [7][ 'child' ][100] = array ( 'ID' => null , 'post_title' => 'Googele' ); |
親のID配列にこんな感じで追加してやると子に入ります。後はheader.phpなんかで展開してやれば良いかなっと。
配列へURLも一緒に加える場合はこんな感じで。
1 2 3 4 5 6 | $naviArray [ $array ->ID] = array ( 'ID' => $array ->ID , 'post_title' => $array ->post_title , 'post_name' => $array ->post_name , 'url' => get_bloginfo( 'url' ). '/' . $array ->post_name ); |