1

わかりました、これは本当に私を悩ませています! ページに子があるか子である場合は常に、すべての子ページと親ページをリストする関数を作成しました (まあ、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:

除外ページ プラグインを無効にし、プライマリ ナビゲーションのカスタム メニューを使用するようになりました。少し痛いですが、それほど悪くはないと思います。誰かがより良い提案を持っているなら、私に知らせてください!

4

0 に答える 0