この記事は2年以上前に書かれた記事です。現状にそぐわないかもなのでご注意を。

[wp] wp_list_pagesのexclude_treeの複数指定のバグ対策

こちらの記事でバグ修正方法を紹介されていましたが、
コアファイルを変更するのでWordpressのバージョンアップのたびに適用する必要が。

それも面倒、というか忘れそうなので、テンプレートに対策を直接記述する
以下のバグ対策を施すことにしました。

例えば

wp_list_pages(‘exclude_tree=29,32,36,39&sort_column=menu_order&depth=2&title_li=’ );

という記述は、

$parent_pages_to_exclude = array(29,32,36,39);
foreach($parent_pages_to_exclude as $parent_page_to_exclude) {
if ($page_exclusions) { $page_exclusions .= ‘,’ . $parent_page_to_exclude; }
else { $page_exclusions = $parent_page_to_exclude; }
$descendants = get_pages(‘child_of=’ . $parent_page_to_exclude);
foreach($descendants as $descendant) {
$page_exclusions .= ‘,’ . $descendant->ID;
}
}
wp_list_pages(‘title_li=&sort_column=menu_order&depth=2&exclude=’ . $page_exclusions);

で想定通りの動作をさせられます。

参考:http://wordpress.org/support/topic/excluding-multiple-pages-with-exclude_tree

スポンサーリンク