私は私のサイトのためのメニューを構築するためにWordpressのメニュー機能(wp_nav_menuとwp_list_pages)で遊んでいました。それは一緒に来ています、しかし、私はまだ私が望む行動を得ることにいくらかの問題を抱えています。
私が欲しいのはこのウェブサイトのサイドバーメニューのようなものです(WPではありません): http://www.fairfood.org/facts/sustainability-agenda/ /
あなたが子供を持つサブページをクリックすると、メニューはそれらの子供を表示します。 http://www.fairfood.org/facts/production-chains/
私は現在このコードを持っています:
<?php // sidebar menu
if ($post->post_parent) {
$ancestors=get_post_ancestors($post->ID);
$root=count($ancestors)-1;
$parent = $ancestors[$root];
} else {
$parent = $post->ID;
}
$children = wp_list_pages("title_li=&child_of=". $parent ."&echo=0");
if ($children) { ?>
<ul id="subnav">
<?php echo $children; ?>
</ul>
<?php } ?>
これは機能しますが、これは現在のページの子だけでなく、すべてのサブページが持つ子を示しています。私の言っていることの例: http://test.fairfood.org/facts/ /
この作品を作るためのアイデアはありますか?
もしあなたがプラグインを使用しても構わないのなら、私はこれを過去に機能させる方法を教えてください。
function get_root_parent($ page_id){ global $ wpdb; $ parent = $ wpdb-> get_var( "$ wpdb->投稿からSELECT投稿先を選択します。WHERE post_type = 'ページ' AND ID = '$ page_id '"); if($ parent == 0)return $ page_id; そうでない場合get_root_parent($ parent); }
<?php $ GLOBALS ["parentId"] = get_root_parent($ post-> ID); ?>
<ul> <?php $ thispage = $ wp_query-> post; if($ thispage-> post_parent!= 0){ wswwpx_fold_page_list( "sort_column = menu_order&child_of ="。$ GLOBALS ["parentId"]。 "&title_li =&amp; child_of ="。$ thispage-> post_parent); } else { wswwpx_fold_page_list( " "sort_column = menu_order&child_of ="。$ GLOBALS ["parentId"]。 "&title_li =&amp; child_of ="。$ thispage-> ID); }?> </ul>