2011-09-17 6 views
0

私は視差の特徴とhtml5を持つWordPressのテーマを作成しています。家にはすべてのメインページと2種類のナビゲーションがあります。視差ワードプレスのテーマ。どのように私は動的にページIDを自分のサブメニューを表示することができますか?

メインページは、親ページのナビゲーションです。だから私はAbout、Projects、Contactを持っています。

しかし、このページのそれぞれには子ページがあります。私はメインメニューからアクセスすることができないので、子ページまたはサブページを持つ各ページには、第2の種類のメニューがあります。また

のプロジェクトは、異なるページがありますなど、「プロジェクト」(メイン)、「デザイン」(子)、コンサルティング(子)、

丸みを帯びたように、ページの右側に配置されて2番目のメニューボタンは、親「約」と子「約2」をリストします。

私はすでに、私は親ページをハードコードしている方法を

をそれらをリストすると、リンクが(視差行動)へスクロールして動作させるために道をそれを考え出した。しかし。私がしたいのは、ページIDをdinamically取得してハードコードされないようにすることですが、テーマが1つのページサイトとしてしか機能しないため、問題が発生します。

コードは私が持っているコードですので、誰かがメインページと子ページをリストする現在の各ページのIDを識別する方法を見つける手助けができますか?

ご覧のとおり、$parent = 13;はハードコードされており、また、IDがハードコードされた$pages = get_pages('hierarchical=0&include=13') ;も含まれています。だから、すべてのページが同じように見える。私は、それぞれのハードコーディングのためにis_pageで条件付きを作成することができますが、アイディアはそれを動的にすることです。

どのようなヘルプが素晴らしいでしょう!

<?php 

$parent = 13; 
$args= array(
    'parent' => $parent, 
    'hierarchical' => 0 
); 

      $pages = get_pages('hierarchical=0&include=13') ; 

      foreach ($pages as $page) { 
       $new_title = str_replace(" ", "", strtolower($page->post_name));  
       echo '<li><a href="#' . $new_title . '" title="' . $page->post_title . '">' . $page->post_title . '</a></li>'; 
      } 

    $child_page_pages = get_pages($args); 
    foreach ($child_page_pages as $page) { 

       $new_title = str_replace(" ", "", strtolower($page->post_name));  
       echo '<li><a href="#' . $new_title . '" title="' . $page->post_title . '">' . $page->post_title . '</a></li>'; 
      } 

?> 

答えて

0

を取得するには

おかげで、ポストの親ページのIDのあなたはそれが親IDを返す必要がありget_post_ancestors($post)を使用することができます。

$ReturnParents = get_post_ancestors($post->ID); 

もう1つの方法は、グローバル$postです。グローバル$ポストで

global $post; 
global $wp_query; 

    $thePostID = $wp_query->post->ID; 
    $myParent = $post->post_parent; 

    echo "I am post ". $thePostID . " and my parent is " . $myParent; 
+0

すべてのページには、同じことを返します:「私は1を掲示していますし、私の親は0である」ので、私はそれがポスト番号1のどれであると言って視差をテーマに、各ページを持っていますページIDは#1です。私は間違っているの? –

関連する問題