カスタム投稿タイプの子ページに子ページの兄弟一覧をリンク付きで表示させたいです。
(親ページと同じものを同じ親の子の兄弟一覧として表示させる)
昨日m.ts10806さんのおかげで、親ページに子ページ一覧をリンク付きで表示させることができましたが、
子ページに遷移すると親ページで表示されていた子ページ一覧は消えてしまいます。
子ページでも親ページと同様に、同じ親の兄弟ページ一覧を表示させたいです。
<ul> <?php $args = array( 'post_type' => 'online_course', //固定ページの場合は'page'、カスタム投稿の場合はそのスラッグ 'posts_per_page' => 15, //表示させたいページ数。-1で全ページ表示 'post_parent' => $post->ID //親ページのIDを指定 ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; wp_reset_postdata(); ?> </ul>
下記のサイトを参考にif文で子ページだった場合を作ればと思ったのですが、表示すら消えてしまいました・・。
特定のページの子ページかどうか
参考ページ
function.php
function is_child_of($pagename) { if(is_singular( array( 'online_course' ) ) ) { global $post; if($post->ancestors) { $root = $post->ancestors[count($post->ancestors) - 1]; $root_post = get_post($root); $name = esc_attr($root_post->post_name); if($pagename == $name) return true; } } return false; }
sidebar-online_course.php
<ul> <?php $args = array( 'post_type' => 'online_course', //固定ページの場合は'page'、カスタム投稿の場合はそのスラッグ 'posts_per_page' => 15, //表示させたいページ数。-1で全ページ表示 'post_parent' => $post->ID //親ページのIDを指定 ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endif(is_child_of('online_course')) { // スラッグ名「online_course」ページを親に持つ子ページを表示中 } ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; wp_reset_postdata(); ?> </ul>
こちらも試してみましたが最初と同様、子ページでは一覧表示が消えてしまう上に、
他の親子たちも表示されてしまうようでした。
<?php // 指定したIDの子ページ一覧を表示 $page_ID = get_page_by_path('online_course/child'); // ID取得用の固定ページオブジェクトの取得 $children = wp_list_pages(array( // ページリストの取得 'title_li' => '', // 見出しの非表示 'child_of' => $page_ID->ID, // ページIDを指定 'echo' => '0' // PHP で使うために HTML テキストとして返す )); if($children){ // 子ページがあるときに一覧を表示 wp_list_pages('title_li=&post_type=online_course'); } ?>
検索をかけて調べているのですが、カスタム投稿ページで子ページにも兄弟ページを表示させるというのがなく、わたしの知識も浅く・・困っています。
お力を貸していただけると幸いです。どうぞよろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/24 04:25 編集
2022/02/24 05:18
2022/02/24 09:29 編集