サイレンテンプレートを使用しています。 homepage.phpでは、このコードはポートフォリオの内容を表示するために使用されます。
print_excerpt(200);
しかし、私は<!--more-->
の前にだけ内容を見せる必要があります
私はこれを使用しました:
the_content( $more_link_text, FALSE);
しかし、それは機能していません。すべてのコンテンツが表示されます
WordPress関数 get_extended
を使用して、文字列のさまざまな部分(<!--more-->
タグの前後の部分)を取り出すことができます。 get_extended
は3つのキーを持つ配列を返します。キーmain
とextended
は重要です。$arr['main']
はmoreタグの前の部分、$arr['extended']
はmoreタグの後の部分です。
これは次のようになります。
// Fetch post content
$content = get_post_field( 'post_content', get_the_ID() );
// Get content parts
$content_parts = get_extended( $content );
// Output part before <!--more--> tag
echo $content_parts['main'];
残念ながら、抜粋(get_extended
、get_extended
)をレンダリングすることになっているWordPressのすべての関数は、HTMLタグを適用したり、段落内の改行を変換したりしないようです。
抜粋をフォーマットしてレンダリングする必要がある場合は、このコードを使用することをお勧めします。
global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;
この回避策では、ループ内にあることを_content()関数に伝え、moreタグの前にコンテンツを取得します。