私のセットアップは次のとおりです:
- 「クライアント」と呼ばれるカスタム投稿タイプ
- ナビゲーションの 2 つのレベル (別の、現在のページに親/子がある場合にのみ表示される 2 番目のレベル)
- クライアントと呼ばれるページ
- クライアントの投稿にはカスタム テンプレートがあります (単一- client.php)
「クライアント」がクライアント ページのサブページ/子を投稿するようにしたいので、クライアント ページにナビゲーションが正しく表示され (サブページが自動的に一覧表示されます)、新しいクライアントを簡単に追加できます。
いくつかのスクリプトを見つけましたが、どれも私が望んでいたとおりのものではありませんでした。
サブナビゲーションコードの主要部分は次のとおりです。
<nav id='content_clients_navig' class='navig_general'>
<ul>
<?php
global $post;
//determine which navig should be displayed
//if post has parent, display parent navig
//else display the current post's navig
$navig_display = ($post->post_parent) ? $post->post_parent : $post->ID;
$menu_args = array(
'child_of' => $navig_display,
'title_li' => ''
);
wp_list_pages( $menu_args );
?>
</ul>
</nav>
テンプレート ファイルに次のコードを挿入して呼び出します。
<?php if (has_subnavig()) get_template_part( 'part', 'subnavig' ); ?>
has_subnavig は次のとおりです。
function has_subnavig()
{
global $post;
if( is_page() && $post->post_parent){
return true;
}else{
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
};
if($children){
return true;
}else{
return false;
};
}