視差機能と 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>';
}
?>