新着情報

Information

WordPress 子ページを出力

先日 WordPress で子ページリストを出力出来ない問題にぶち当たりました。
テンプレートタグ wp_list_pages() の使用場所が親ページに限られていて、子ページ中では同階層のページを出力出来ない問題です。

何とか解決出来ないかと作った関数が以下のもの。

// 子ページを取得
function get_pages_children($parent_id){
    global $wpdb;
    $sql = "SELECT * FROM $wpdb->posts WHERE (post_type = 'page' AND post_status = 'publish') AND post_parent = $parent_id ORDER BY menu_order ASC";
    return $wpdb->get_results($sql);
}

// 子ページをリストで出力
function list_pages($parent_id) {
	$pages = get_pages_children($parent_id);
	foreach($pages as $key => $value){
		$id[$key] = $pages[$key]->ID;
	}
	$id = implode(',',$id);
	echo wp_list_pages("depth=1&title_li=&sort_column=ID&include=$id");
}

もっとシンプルな形に纏められるかもしれません。
使用方法は list_pages() の引数に親ページIDを指定するだけ。

2010年07月23日 | スタッフブログ