私はshortpostに文字数制限のあるテーマを使い、文字数制限の最後に[...]を表示します。
これを削除したいので、the_excerpt();
を検索してthe_content();
に置き換えます。
この問題は通常のコンテンツでは解決しますが、それでも画像投稿タイプに問題があり、これを変更したときに私のショートポストの動作がフル投稿のようになり、投稿の長さと関係がないという<?php the_excerpt(); ?>
があります。
すべてのPHPファイルをテーマにして、次のようなキーワードを探してみます。limit、length、findの抜粋ここで、 "[...]"でshortpostの長さを定義するコードすべてのファイルと言語ですが、それがどこから来るのか私にはわかりません。
しかし、私が見つけたのは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を増やしても何も変わらない!
どのコードを探す必要がありますか?
コーデックスはあなたの友人であり、あなたの最初の目的地であるべきです:-)
[...]
は the_excerpt()
によって追加されます。抜粋の後の続きを読むテキストをカスタマイズするために特別に含まれている excerpt_more
フィルタというフィルタが提供されています。
抜粋テキストの後の[...]
を削除するには、次のようにします。
function new_excerpt_more( $more ) {
return '';
}
add_filter('excerpt_more', 'new_excerpt_more');
他の人がすでに指摘したように、excerpt_more
フィルターフックを使うのが正しい方法です。
空の文字列を返す関数を書く必要がないことを付け加えたいと思いました。 WordPressには、true、false、ゼロ、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' );
?>
それは私のための仕事です!
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');
あなたのfunctions.php
に新しい関数を作成してみてください。
function custom_excerpt() {
$text=preg_replace( "/\\[…\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}
それからあなたのページの新しい機能を使用しなさい。
これを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 );
これについてもっと読むことができます ここ
'excerpt_more'はWordPressのフックです。抜粋した内容を返します。抜粋テキストの後の[...]を削除するには、以下のように空白またはカスタム要件を返します。 function.phpでこのコードを使う
function custom_excerpt_more( $excerpt ) {
return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );