[WordPress]階層付きのカスタム投稿で表示ページの子・孫ページのIDを配列で取得する方法
作成日:
2013年11月10日
[php]function checkChild($post, $ar){
global $array;
$array = $ar;
//子ページの有無を確認
$posts = get_posts( 'numberposts=-1&order=ASC&orderby=post_title&post_type=custompost&post_parent=' . $post->ID );
if($posts){
//親ページであれば、子のページIDを配列に追加し、再処理
foreach($posts as $val){
$array[] = $val->ID;
checkChild($val, $array);
}
}else{
//独身ページであれば、現在のページのIDを配列に追加
$array[] = $post->ID;
}
return $array;
}[/php]
global $array;
$array = $ar;
//子ページの有無を確認
$posts = get_posts( 'numberposts=-1&order=ASC&orderby=post_title&post_type=custompost&post_parent=' . $post->ID );
if($posts){
//親ページであれば、子のページIDを配列に追加し、再処理
foreach($posts as $val){
$array[] = $val->ID;
checkChild($val, $array);
}
}else{
//独身ページであれば、現在のページのIDを配列に追加
$array[] = $post->ID;
}
return $array;
}[/php]
初め、foreachの中の処理で取得した配列が毎回リセットされるので、どうしたもんかと思っていましたが、こういう時にグローバル変数を設定してやれば良いのですね。
http://ja.forums.wordpress.org/topic/5972
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
関連投稿
Loading...
コメントをどうぞ