Title: トップページに固定ページの抜粋を表示したい
Last modified: 2011年4月12日

---

# トップページに固定ページの抜粋を表示したい

 *  解決済 [t.harada](https://ja.wordpress.org/support/users/tharada/)
 * (@tharada)
 * [15年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/)
 * トップページに特定の固定ページの抜粋を表示したいと思っています。
 * 固定ページの抜粋はfunction.phpに以下のソースを追加することで出来ました。
    `add_post_type_support('
   page', 'excerpt' );` が、肝心の抜粋の表示方法が分かりません。
 * 現在はプラグインのThumbnail for Excerptsをインストールしており、トップページの
   ソースに
    `<?php the_excerpt(); ?>` と記述していますが、この方法だと、固定ページ
   ではなく、通常の投稿記事の抜粋のみが表示されています。
 * これを特定の固定ページ（ex.page ID 208と245など）の抜粋を表示する方法orヒント
   をご教授頂けませんでしょうか？

7件の返信を表示中 - 1 - 7件目 (全7件中)

 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [15年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138319)
 * t.haradaさん、こんにちは。
 * 考え方として
    1. get_postsのincludeパラメータに抜粋を表示する固定ページのIDを指定し、固定ページ
       のデータを取得
    2. 取得できたデータをforeachでループ。the_excerptはグローバル変数の$postを参照する
       ので、ループするときの変数を$postにしておくと楽。
    3. the_excerpt関数を実行
 * という感じです。
    下記は、htmlのタグ付けを一切行っていないのでそのまま使うこと
   は難しいかと思いますが、参考になれば幸いです。
 *     ```
       $excerpt_pages = get_posts( 'numberposts=-1&post_type=page&include=208,245&orderby=menu_order&order=ASC' );
       if ( $excerpt_pages ) {
       	foreach ( $excerpt_pages as $post ) {
       		the_excerpt();
       	}
       }
       ```
   
 *  [sysbird](https://ja.wordpress.org/support/users/sysbird/)
 * (@sysbird)
 * [15年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138326)
 * 私がたまに使ってる方法です。
    もしIDが固定なら、
 *     ```
       $id = 208;
       $page = get_page($id);
       $html = apply_filters('the_excerpt', $page->post_excerpt);
       echo $html;
       ```
   
 * 複数ページある場合は、jim912さんの方法がよいのかな？
 *  トピック投稿者 [t.harada](https://ja.wordpress.org/support/users/tharada/)
 * (@tharada)
 * [15年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138331)
 * お二人ともありがとうございます！
    以下のソースでとりあえずの目的は達成すること
   が出来ました。
 *     ```
       <?php $excerpt_pages = get_posts( 'numberposts=-1&post_type=page&post_parent=187,189,209&orderby=menu_order&order=ASC' );
       if ( $excerpt_pages ) {
       	foreach ( $excerpt_pages as $post ) {
       		 ?>
       	<a href="<?php echo get_page_link(ID);?>"><?php echo the_excerpt();
       		the_post_thumbnail();?></a>
       	<?php }?>
       	<?php }?>
       ```
   
 * ここでもう一つ厄介なことが…。
    上記ソースではページID187,189,209の子ページの抜粋
   を全て表示していますが、それぞれの親に属する最新の子ページのみの抜粋を表示出来
   ないものでしょうか？
 * イメージとしてはこんな感じです。
    Home以外全て固定ページで187,189,209に属する
   子ページは今後増えていく予定です。 Home 　└187 　　└A（187の中では最新ページ）
   └B 　　└… 　└189 　　└C（189の中では最新ページ） 　　└D 　　└… 　└209 　　└E（
   209の中では最新ページ） 　　└F 　　└… ※上記のような構成でHomeにA,C,Eの抜粋のみ
   を表示。
 * こういう場合は抜粋にこだわらない方がよいのでしょうか？
 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [15年、 6ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138334)
 * t.haradaさん、こんにちは。
    1. 187, 189, 209の配列をforeachでループ
    2. get_postsでpost_parentを親ページのID、post_typeをpage、numberpostsを１に指定
    3. 取得できた配列の１つめを$postに代入
    4. the_excerptを実行
 * の手順でいけます。
 *  トピック投稿者 [t.harada](https://ja.wordpress.org/support/users/tharada/)
 * (@tharada)
 * [15年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138398)
 * jim912さん、お返事ありがとうございます。
 * 恥ずかしいことに、PHPをゼロから書くほど知識がなく、お返事を頂いてから自分なり
   に調べつつコードを書いてみたのですが、全て意図通りになりませんでした。
 * ど素人のコードで恐縮ですが、自分で書いたコードがこれです。
 *     ```
       $id = array(187, 189, 209);
       foreach ( $id as $post ){
       get_posts( 'numberposts=1&post_type=page&post_parent=187,189,209&orderby=menu_order&order=ASC' );}
       echo the_excerpt();
       ```
   
 * どうも一行目から間違っているような気がしているのですが、実行しても何も表示され
   ませんでした。
 * > 取得できた配列の１つめを$postに代入
 * 特に、これをどう書けば良いのかが分からないままです…。
 * 大変恐縮ですが、もう少しだけヒントを頂けませんでしょうか？
 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [15年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138404)
 * t.haradaさん、こんにちは。
 * 下記でどうでしょう。
 *     ```
       $parent_ids = array(187, 189, 209);
       foreach ( $parent_ids as $id ) {
       	$first_posts = get_posts( 'numberposts=1&post_type=page&orderby=menu_order&order=ASC&post_parent=' . $id );
       	if ( $first_posts ) {
       		$post = $first_posts[0];
       		the_excerpt();
       	}
       }
       ```
   
 * 「最新ページ」というのが、日時なのか、順序なのか分かりませんが、上記コードは、
   t.haradaさんのコードに倣って、順序でのソートになっています。日時であれば、orderby
   をpost_dateに直してください。
 *  トピック投稿者 [t.harada](https://ja.wordpress.org/support/users/tharada/)
 * (@tharada)
 * [15年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138410)
 * jim912さん、何度もありがとうございます！
 * お教えいただいたソースに少しだけ手を加えて目的を達成することが出来ました。
 *     ```
       <?php
       $parent_ids = array(187, 189 ,209);
       foreach ( $parent_ids as $id ) {
       	$first_posts = get_posts( 'numberposts=1&post_type=page&orderby=menu_order&order=ASC&post_parent=' . $id );
       	if ( $first_posts ) {
       		$post = $first_posts[0]; ?>
       	<div class="<?php if ($id=='184'): ?>work<?php elseif ($id=='189') : ?>voice<?php else : ?>webmag<?php endif; ?>">
       		<a href="<?php echo get_page_link(ID);?>"><?php the_post_thumbnail();?></a>
       		<a href="<?php echo get_page_link(ID);?>"><?php echo the_excerpt();?></a>
       	</div>
       	<?php }?>
       	<?php }?>
       ```
   
 * お陰さまでとても勉強になりました。
    今までCMSはずっとNucleusを使っていたので、
   まだまだWordpressには慣れていませんが、少しづつ覚えていきたいと思います。 ありがとう
   ございました！

7件の返信を表示中 - 1 - 7件目 (全7件中)

 トピック「トップページに固定ページの抜粋を表示したい」には新たに返信することはでき
ません。

## タグ

 * [固定ページ](https://ja.wordpress.org/support/topic-tag/%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8/)
 * [抜粋](https://ja.wordpress.org/support/topic-tag/%e6%8a%9c%e7%b2%8b/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 7件の返信
 * 3人の参加者
 * 最後の返信者: [t.harada](https://ja.wordpress.org/support/users/tharada/)
 * 最後の活動: [15年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e3%83%88%e3%83%83%e3%83%97%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e6%8a%9c%e7%b2%8b%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%97%e3%81%9f%e3%81%84/#post-138410)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
