web-dev-qa-db-ja.com

タグを追加した後のpost_contentの単語制限

次のコードを使用して、ティーザーを非表示にし、ループ内のタグが増えた後にのみコンテンツを表示します。

<?php
$after_more = explode(
    '<!--more-->', 
    $post->post_content
); 
if( $after_more[1] ) { 
    echo $after_more[1]; 
} else {
    echo $after_more[0]; 
}
?>

投稿内容全体ではなく、最初の50単語のみを表示する方法はありますか。ティーザーを非表示にし、タグの後に50ワードを表示したいです。

3
Skotlive

wp_trim_words関数を使用して、コンテンツを特定の単語数に制限し、トリミングしたテキストを返します。 wp_trim_words関数の使用例.

<?php

    $content = get_the_content();
    $trimmed_content = wp_trim_words( $content, 50, NULL );
    echo $trimmed_content;

?>

だから私はあなたのコードにwp_trim_wordsの後に50ワードを得るために<!-- more -->関数を追加しました。

<?php
    $after_more = explode( '<!--more-->', $post->post_content );

    if( $after_more[1] ) {
        $content = $after_more[1];
    } else {
        $content = get_the_content();
    }

    $trimmed_content = wp_trim_words( $content, 50, NULL );
    echo $trimmed_content;
?>

投稿コンテンツに<!--more-->がない場合、コンテンツから50ワードを表示するように編集されました。

2
Robert hue

A)<!--more-->コメント

これがワンライナーです。

echo wp_trim_words( strip_shortcodes( strip_tags( get_the_content( '', true ) ) ), 50 );

投稿コンテンツの<!--more-->部分の上にあるティーザーを非表示にするために、get_the_content()の2番目の引数を使用します。

B)<!--noteaser-->コメント

投稿コンテンツからティーザー表示を制御するために代わりに使用できる、<!--noteaser-->コメントがあることに注意してください。

....
<!--more--><!--noteaser-->
...

その場合は以下を使用します。

echo wp_trim_words( strip_shortcodes( strip_tags( get_the_content( '', false ) ) ), 50 );

必要に応じて、上記の出力に追加のフィルタを適用することもできます。

この場合私達はまた使用するかもしれません:

echo wp_trim_excerpt();

次に、excerpt_lengthexcerpt_morethe_content、およびwp_trim_excerptフィルタを使用して出力を制御します。

スタートレックローレムイプサムの例:

上記のケースAの場合:

前:

Exceeding reaction chamber thermal limit. 
We have begun power-supply calibration. 
<!--more-->
Force fields have been established on all turbo lifts and crawlways. 
Computer, run a level-two diagnostic on warp-drive systems. 
Antimatter containment positive. 
Warp drive within normal parameters. 
I read an ion trail characteristic of a freighter escape pod. 
The bomb had a molecular-decay detonator. 
Detecting some unusual fluctuations in subspace frequencies.
Sensors indicate no shuttle or other ships in this sector. 
According to coordinates, we have travelled 7,000 light years 
and are located near the system J-25. 
Tractor beam released, sir. 
Force field maintaining our hull integrity. 

の後:

Force fields have been established on all turbo lifts and crawlways. 
Computer, run a level-two diagnostic on warp-drive systems. 
Antimatter containment positive. 
Warp drive within normal parameters. 
I read an ion trail characteristic of a freighter escape pod. 
The bomb had a molecular-decay detonator. 
Detecting some unusual fluctuations in subspace...
3
birgire