タイトルを8文字以上に短縮する方法を学習しようとしています。それが8文字より長い場合は、最初の8文字をエコーし、その後に楕円を置きます。ここでWordpress/PHP:タイトル文字が8文字以上の場合はタイトルを短くしてください。
は私がタイトルを取得しています方法です:
<?php echo $post->post_title ?>
任意の助けいただければ幸いです。これは私にとって素晴らしい学習のレッスンになるので、これを将来的に再現できるので、やはりどんな助けも素晴らしいだろう。
タイトルを8文字以上に短縮する方法を学習しようとしています。それが8文字より長い場合は、最初の8文字をエコーし、その後に楕円を置きます。ここでWordpress/PHP:タイトル文字が8文字以上の場合はタイトルを短くしてください。
は私がタイトルを取得しています方法です:
<?php echo $post->post_title ?>
任意の助けいただければ幸いです。これは私にとって素晴らしい学習のレッスンになるので、これを将来的に再現できるので、やはりどんな助けも素晴らしいだろう。
<?php
if (strlen($post->post_title) > 8)
echo substr($post->post_title, 0, 8) . ' ...';
else
echo $post->post_title;
?>
あなたはmbstring
拡張が有効になっているしている場合あるいは、Gordon'sanswerにより示唆されるように短い方法もあります。投稿のエンコーディングがマルチバイトの場合は、とにかくmbstring
を使用する必要があります。それ以外の場合は、文字が正しくカウントされません。
echo mb_strimwidth($post->title, 0, 8, ' ...');
あなたがワード境界に関して切り捨てしたい場合は、参照
echo mb_strimwidth('Your Title', 0, 8, '…');
を使用することができますが、プラグインでこれを行う必要がありますので、あなたがテーマを変更した場合、変更は紛失することがあります
は非常に多くのレベルで間違っています。 – HollerTrain
これを試すことができます。今ではそう
$maxlength = 8;
if (strlen($post->post_title) > $maxlength)
echo substr($post->post_title, 0, $maxlength) . ' ...';
else
echo $post->post_title;
あなたのコードのすべての行の最大文字を変更する必要はありません。
ありがとうございました。
これはとても美しくてエレガントです。 ty so much <3 – HollerTrain
@HollerTrain:当初、 'substr()'の引数の順序は私の答えでは正しくありませんでした。今修正されました。 – Saul
に 'mb_strimwidth'を使用すると、これらのようなマルチバイト文字に対して正しい結果が得られるという利点があります。また、私は3つのドット '...'の代わりに実際の省略記号 '... 'を使っています。 – Gordon