現在のページの子ページを取得するためのwpクエリ
-
-
このソリューションを試してください == 投稿の子を取得する-http://wordpress.stackexchange.com/a/123143/42702Try this solution == get children of a post - http://wordpress.stackexchange.com/a/123143/42702
- 0
- 2013-11-13
- T.Todua
-
3 回答
- 投票
-
- 2012-07-31
child_of
をpost_parent
に変更し、post_type => 'page'
:WordPress codex Wp_query 投稿&ページパラメータ
<?php $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $parent = new WP_Query( $args ); if ( $parent->have_posts() ) : ?> <?php while ( $parent->have_posts() ) : $parent->the_post(); ?> <div id="parent-<?php the_ID(); ?>" class="parent-page"> <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> <p><?php the_advanced_excerpt(); ?></p> </div> <?php endwhile; ?> <?php endif; wp_reset_postdata(); ?>
You have to change
child_of
topost_parent
and also addpost_type => 'page'
:WordPress codex Wp_query Post & Page Parameters
<?php $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $parent = new WP_Query( $args ); if ( $parent->have_posts() ) : ?> <?php while ( $parent->have_posts() ) : $parent->the_post(); ?> <div id="parent-<?php the_ID(); ?>" class="parent-page"> <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> <p><?php the_advanced_excerpt(); ?></p> </div> <?php endwhile; ?> <?php endif; wp_reset_postdata(); ?>
-
おかげで、私はオリジナルの `post_parent`を試しましたが、キーは` 'post_type'=> 'page' `です-ワードプレスのクエリはデフォルトで投稿しますか?よろしければお答えいたします.Thanks dude, I tried `post_parent` original but it's `'post_type' => 'page'` that is the key - does wordpress querys default to post then? I will accept answer when it lets me.
- 1
- 2012-07-31
- Joshc
-
はい、 `'post_type'=> 'post'`がデフォルトです.Yes, `'post_type' => 'post'` is default.
- 0
- 2019-03-26
- mrwweb
-
- 2020-02-26
これは非常に古い質問だと思いますが、私がそれに着陸したので、他の人もそうするかもしれません.
Wordpressには、ページを一覧表示するための非常にシンプルなソリューションがあり、引数を追加することもできます.
ページの子を表示するために必要なのはこれだけです:
wp_list_pages(array( 'child_of' => $post->ID, 'title_li' => '' ))
適用できるすべてのオプションについては、 wp_list_pagesのリファレンスページをご覧ください.
I know this is a very old question, but since I landed on it, others might as well.
Wordpress has a very simple solution for listing pages, where you can add some arguments as well.
This is all you will need to display a page's children:
wp_list_pages(array( 'child_of' => $post->ID, 'title_li' => '' ))
Look at the reference page for wp_list_pages for all options you can apply.
-
これにより、投稿オブジェクトのリストではなくHTML文字列が返されるため、OPが必要とするものではない可能性があります.This will return an HTML string rather than a list of post objects, so probably not what the OP wants.
- 0
- 2020-07-27
- Alexander Holsgrove
-
- 2020-02-05
これをfunctions.phpの関数に書き換えて追加する必要があります グローバル$post;
function page_summary() { global $post; $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $parent = new WP_Query( $args ); if ( $parent->have_posts() ) : while ( $parent->have_posts() ) : $parent->the_post(); ?> <div id="parent-<?php the_ID(); ?>" class="parent-page"> <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> </div> <?php endwhile; endif; wp_reset_postdata(); }
Rewriting this to a function in functions.php you need to add global $post;
function page_summary() { global $post; $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $parent = new WP_Query( $args ); if ( $parent->have_posts() ) : while ( $parent->have_posts() ) : $parent->the_post(); ?> <div id="parent-<?php the_ID(); ?>" class="parent-page"> <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> </div> <?php endwhile; endif; wp_reset_postdata(); }
誰かがwp_queryを手伝ってくれませんか.
現在のページの子ページのページを作成してアーカイブするためのテンプレートファイル/ループを作成しています.
数ページで使用しているため、このクエリは自動である必要があります.
これは以下の私のクエリですが、子ページではなく投稿を返すだけです.
ご協力いただきありがとうございます.
ジョシュ