0

視差機能と html5 を使用してワードプレスのテーマを作成しています。ホームにはすべてのメイン ページと 2 種類のナビゲーションがあります。

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

しかし、このページにはそれぞれ子ページがあります。Aboutページにはその下に子が1つありますが、メインメニューからアクセスできないため、子またはサブページを持つ各ページには2番目のタイプのメニューがあります。

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

ページの右側に丸いボタンとして配置されている 2 番目のメニューには、親の "about" と子の "about 2" が一覧表示されます。

それらをリストし、リンクをスクロールして動作させる方法(視差動作)をすでに理解しました

しかし、親ページをハードコードする方法があります。私がやりたいことは、ページ ID を動的に取得してハードコードされないようにする方法を見つけることですが、テーマが 1 ページのみのサイトとして機能するため、問題が発生しています。

これが私が持っているコードです。コードが現在の各ページのIDを識別してメインページと子ページをリストする方法を見つけるのを手伝ってくれる人はいますか?

ご覧のとおり、ハードコードされており、ハードコードされた ID$parent = 13;も含まれています。$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>';
            }

?>
4

1 に答える 1

0

投稿の親ページ ID を取得するget_post_ancestors( $post )には、親 ID を返す必要があります。

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

試すことができる別の方法は、 global$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;  
于 2011-09-17T05:53:56.560 に答える