web-dev-qa-db-ja.com

ページの抜粋

WP GUIの[More]ボタンを使用して、ページに抜粋を挿入しました。

抜粋を表示したいカスタムのloop-page.phpがあります。しかし、それは空のようですか?

子ページからの抜粋を表示することは可能ですか?

$pageChildren = get_pages('sort_column=menu_order&hierarchical=0&child_of='.$post->ID);
if ( $pageChildren ) {
  foreach ( $pageChildren as $pageChild ) {
    echo '<p>And the title is: '. $pageChild->post_title.'</p>';
        print_r($pageChild);
        if (!empty($pageChild->post_excerpt)){
            echo '<p><a href="' . get_permalink($pageChild->ID) . '">' . $pageChild->post_excerpt.'</a> </p> ';
        }
        echo '<hr />';
  }
}

enter image description here

1
mrtsherman

"more"タグを使用しても抜粋は作成されません。インデックスページにthe_content()を表示するときに、「もっと読む」リンクを作成するだけです。

抜粋は次のように作成または表示されます。

抜粋を表示するには、テンプレートファイルは "the_content()"ではなく "the_excerpt()"を呼び出す必要があります。注意:あなたは同等の$ post-> post_excerptを使いますが、これもうまく動作するはずです。

その後、 "the_excerpt()"テンプレートタグに抜粋が表示されます。抜粋は次のように作成されます。

1)投稿編集/ページ編集画面の「抜粋」欄に抜粋内容を入力します。 2)「抜粋」フィールドに内容が追加されていない場合は、自動的に文字数に基づいて。

編集:

さてそれで私は最初は全くこれを逃した。 投稿のみに "抜粋"フィールドがあります。 ページには「抜粋」フィールドがありません。だから、$ post-> post_excerptはPagesには入力されないでしょう(私は思う)。

Foreachループ内で "setup_postdata($ pageChild)"を実行してから、 "$ pageChild-> post_excerpt"を "get_the_excerpt()"に置き換えます。

foreach ( $pageChildren as $pageChild ) {
    setup_postdata( $pageChild );
    echo '<p>And the title is: '. $pageChild->post_title.'</p>';
        print_r($pageChild);
            echo '<p><a href="' . get_permalink($pageChild->ID) . '">' . get_the_excerpt() .'</a> </p> ';
        echo '<hr />';
}

それは動作しますか?

2
Chip Bennett