短い投稿からより多くの、または[…]テキストを削除


8

ショートポストの文字数制限のあるテーマを使用し、文字数制限の最後に[...]を表示します。

これを削除したいので、検索しthe_excerpt();て置き換えますthe_content();

問題は通常のコンテンツで解決しますが、それでも画像投稿タイプに問題があり<?php the_excerpt(); ?>ます。これを変更すると、私のショートポストは完全な投稿のように動作し、投稿の長さとは関係ありません。

私はテーマですべてのPHPファイルを開き、次のようなキーワードを探します:制限、長さ、検索の抜粋すべてのファイルと言語で "[...]"を検索しても、ショートポストの長さを定義するコードはどこですか?それがどこから来たのか分からない。

しかし、私が見つけるのはコード行だけです function.php

if ( ! function_exists( 'string_limit_words' ) ) :
function string_limit_words($str, $limit = 18 , $need_end = false) {
    $words = explode(' ', $str, ($limit + 1));
    if(count($words) > $limit) {
        array_pop($words);
        array_push($words,'...');
    }
    return implode(' ', $words);
}
endif;

そして、18を増やしても何も変わりません!

私が探しなければならないコードは何ですか?

回答:


19

コーデックスはあなたの友達であり、最初のストップになるはずです:-)

[...]によって追加されますthe_excerpt()excerpt_more抜粋後に続きを読むテキストをカスタマイズするために特別に含まれているフィルターと呼ばれるフィルターが提供されています

[...]抜粋テキストの後を削除するには、次の操作を実行できます

function new_excerpt_more( $more ) {
    return '';
}
add_filter('excerpt_more', 'new_excerpt_more');

返信ありがとうございます。コードは削除しても問題ありません[...]ですが、ショートポストは制限されており、一部の文字が正常に動作した後に単語がカットされます(ショートポストにタグショーを表示する前のすべて)
Arioman

好奇心旺盛な方のための別の質問です。たとえば、[...]を他の何かに変更するにはどうすればよいですか。[詳細...]
Arioman

あなたはこの投稿を読むべきです。私はその投稿ですべてについてカバーしました。それが役に立てば幸い :-)。問題の解決に役立った場合は、私の回答を受け入れることを覚えておいてください。
Pieter Goosen 14

これはread moreリンクを削除するだけのようです。[...]まだそこにあります。
ジュール・

3

他の人がすでに指摘したように、excerpt_moreフィルターフックを使用するのが正しい方法です。

空の文字列を返す関数を書く必要がないことを追加したかっただけです。WordPressには、true、false、0、null、空の文字列または空の配列を返す組み込み関数がいくつかあります。

この場合、__ return_empty_string()が必要です

このコードをプラグインまたはテーマのfunctions.phpに追加できます。

<?php 
// This will add a filter on `excerpt_more` that returns an empty string.
add_filter( 'excerpt_more', '__return_empty_string' ); 
?>

1

それは私にとって仕事です!

function change_excerpt( $text )
{
    $pos = strrpos( $text, '[');
    if ($pos === false)
    {
        return $text;
    }

    return rtrim (substr($text, 0, $pos) );
}
add_filter('get_the_excerpt', 'change_excerpt');

0

これをあなたに追加する必要があります functions.php

    function custom_excerpt_more( $more ) {
    return '';//you can change this to whatever you want
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );

また、を使用the_excerptすると、コンテンツが自動的に消去され、すべての画像やその他のHTMLタグが削除されるという利点があります。

あなたはここでもっと読むことができます

抜粋の長さも変更したい場合は、このスニペットを以下に追加できますfunctions.php

function custom_excerpt_length( $length ) {
    return 20;//change the number for the length you want
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

これについて詳しくは、こちらをご覧ください。


ターゲットとするバージョン、つまり2.9より前のバージョン:-)
Pieter Goosen 14

@PieterGoosen、私は間違っていると思います。
トマス・ベビー

あなたのコードは長さを変更してもうまく機能しますが、削除すると[...]段落の一部が欠落しているように見える場合は醜くなります。//抜粋のもう1つの問題は、ショートコードに関するものです。ビデオプレーヤーまたはスライドショーを短い投稿に
追加できません

@Arioman、[...]を「読み続ける」というリンクまたは好きなものに変更できます。さて、機能するショートコードthe_excerptが必要な場合は、探しているものではありません。回答が変わるため、それを質問に追加する必要があります。
トマス・ベビー

@TomásCotこの素晴らしいガイドに感謝します。すべてのコード(完全なコード)をfunction.phpに入れ、$ wpse_excerpt = strip_tags($ wpse_excerpt、wpse_allowedtags());を削除します。すべてのタグを受け入れるには、ビデオの挿入にストリームビデオプレーヤーを使用し、次のようなショートコードを生成します。[stream flv = http://****/clip/shad.m4v embed = false share = false width = 640 height = 360 dock = true controlbar = over bandwidth = high autostart = false responsive = 16:9 /]でもテキストが表示されます:* Video:ショートポストにビデオプレーヤーを表示する代わりに、私のビデオのどこに問題がありますか?
アリオマン2014

0

あなたの中に新しい関数を作成してみてくださいfunctions.php

function custom_excerpt() {
 $text=preg_replace( "/\\[&hellip;\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}

次に、ページで新しい関数を使用します。


0

'excerpt_more'はWordPressフックです。コンテンツの抜粋を返します。抜粋テキストの後の[...]を削除するには、以下のように空白またはカスタム要件を返すことができます。function.phpでこのコードを使用します

function custom_excerpt_more( $excerpt ) {
    return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.