私はフィルタを使用してプラグインの出力を修正しています、そして$ post変数が私に利用可能であるので、私はそのように投稿内容を表示することができます:
<h3><?php echo $post->post_title; ?></h3>
<?php echo apply_filters( 'the_excerpt', $post->post_excerpt ); ?>
ただし、上記は抜粋フィールドにコンテンツが入力されている場合にのみ抜粋を表示します。 「the_excerpt」または「get_the_excerpt」を使用できた場合のように、切り捨てられたバージョンのコンテンツは表示されません。私も試してみました:
<?php echo apply_filters( 'the_excerpt', $post->post_content ); ?>
しかし、それはただ投稿の全内容を取得するだけです。
そして私はこれを試しました:
<?php echo apply_filters('the_excerpt', get_post_field('post_excerpt', $post-ID)); ?>
しかし、それは何も返しません。
The_excerptまたはget_the_excerptを使用できないときに$ postから全内容から抜粋を取得する方法はありますか?
ありがとうございました!
ループ の場合、これは$post->post_content
からの抜粋を直接生成します。
<?php echo wp_trim_excerpt(); ?>
もっと読む _こちら_ 。
ループに入っていない場合 の場合は、wp_trim_excerpt
関数で行ったのと同じような実装を使用できます。
$text = strip_shortcodes( $post->post_content );
$text = apply_filters( 'the_content', $text );
$text = str_replace(']]>', ']]>', $text);
$excerpt_length = apply_filters( 'excerpt_length', 55 );
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[…]' );
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
echo $text;