わかりました、これは本当に私を悩ませています! ページに子があるか子である場合は常に、すべての子ページと親ページをリストする関数を作成しました (まあ、wordpress codex から非常によく似たものを変更しました)。そのビットは正常に機能しますが、今やりたいことは、リストの最後に追加する別のページへのパスを持つカスタム フィールド (add-to-nav) を調べることです。そのカスタム フィールドのページと親をチェックします。
すべての正しい詳細をエコーしているように見えますが、何らかの理由でページをリストに追加しません。本当に助けていただければ幸いです!
function add_sec_nav_w_extras(){
global $post;
global $wpdb;
$key = 'add-to-nav';
$addition = get_post_meta($post->ID, $key, TRUE);
if($addition == '') {$addition = get_post_meta($post->post_parent, $key, TRUE);}
if($addition != '') {
$addition_page = get_page_by_path($addition);
}
echo("Addition page: ".$addition_page->post_title."<br/>Addition ID: ".$addition_page->ID."<br/>Current: ".$post->ID."<br/>Parent: ".$post->post_parent);
?><section id="secondnav_w_parent" class="fix"><ul><?php
if($post->post_parent != "0") { // If post has parent, list that parent and all its children
wp_list_pages( array('title_li'=>'','include'=>$post->post_parent) );
wp_list_pages( array('title_li'=>'','depth'=>1,'child_of'=>$post->post_parent) );
if($addition_page != ''){
wp_list_pages( array('title_li'=>'','include'=>$addition_page->ID) );
}
}
else if(get_pages('child_of='.$post->ID)) { // If post is a parent, list itself and all children
wp_list_pages( array('title_li'=>'','include'=>$post->ID) );
wp_list_pages( array('title_li'=>'','depth'=>1,'child_of'=>$post->ID) );
if($addition_page != ''){
wp_list_pages( array('title_li'=>'','include'=>$addition_page->ID) );
}
}
?></ul></section><?php
}
編集:
わかりました、なぜそれが表示されないのかわかりました...表示しないように言いました! ページがプライマリ ナビゲーションに表示されないように除外ページ プラグインを使用しています。だから今、そこにそれを強制する方法を見つける必要があります.何か考えはありますか?
EDIT2:
除外ページ プラグインを無効にし、プライマリ ナビゲーションのカスタム メニューを使用するようになりました。少し痛いですが、それほど悪くはないと思います。誰かがより良い提案を持っているなら、私に知らせてください!