現在のページがページツリーのページの子であるかどうかを調べる再帰関数を作成しました。
私の機能:
function is_ancestor_of( $page_name = null, $post ) {
if(is_null($page_name))
return false;
// does it have a parent?
if (!isset( $post->post_parent ) OR $post->post_parent <= 0 )
return false;
//Get parent page
$parent = wp_get_single_post($post->post_parent);
if ( $parent->post_name == $page_name ){
echo $parent->post_name.' - '.$page_name;
return true;
} else {
is_ancestor_of( $page_name, $parent );
}
}
これは私がテストしているコードです:
$is_parent = is_ancestor_of( 'account', $post );
if(!$is_parent) {
echo '<br/> No match';
}
そしてこれが結果です:
アカウント-アカウント
一致なし
これは、親ページ名'account'を検出したが、データを返さないことを示しています。文字列を返すこともテストしましたが、それも機能していません。
誰かが私が間違っていることを見ることができますか?