2

各投稿から最初の段落を取得して、各投稿から抜粋を取得できるかどうかを調べようとしています。現在、ACF プラグインを使用しており、カスタム投稿タイプとカスタム フィールドがあります。これが私のコードです:

function custom_field_excerpt() {
    global $post;
    $text = get_field('news');
    if ( '' != $text ) {
        $text = strip_shortcodes( $text );
        $text = apply_filters('the_content', $text);
        $text = str_replace(']]>', ']]>', $text);
        $excerpt_length = 20; // 20 words
        $text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
    }
    return apply_filters('the_excerpt', $text);
}

これはうまく機能しますが、最初の 20 単語 (または指定した単語数) のみをトリミングします。これを調整して、最初の 20 単語ではなく、各投稿の最初の段落を取得しようとしています。これはまったく可能ですか?

4

3 に答える 3

0

コンテンツがむき出し(テキストのみ)であることがわかっているため、\n文字を使用してコンテンツを展開し、新しい配列の最初の要素を最初の段落と見なすことができます。より効率的な方法でこれを行うことができるかもしれませんが、関数は次のとおりです。

あなたの新しい機能

function custom_field_excerpt() {
  global $post;
  $text = get_field('news');
  if ( '' != $text ) {
    $text = strip_shortcodes( $text );
    $text = apply_filters('the_content', $text);
    $text = str_replace(']]>', ']]>', $text);
    $text_paragraphs = explode("\n",$text);
    $text = $text_paragraphs[0];
  }
  return $text;
}
于 2013-02-26T21:50:20.683 に答える
-1

$excerpt_length を strlen($text) に置き換えてみてください

        $text = wp_trim_words( $text, strlen($text), $excerpt_more );
于 2013-02-26T21:23:19.493 に答える