2010-12-14 95 views
1

我想學習如何縮短標題,只要它是超過8個字符長。如果它長於8個字符,則回顯前8個字符並在其後面放一個橢圓。WordPress的/ PHP的:如果標題字符超過8個字符,縮短標題

這裏是我如何獲得稱號:

<?php echo $post->post_title ?>

任何幫助將不勝感激。這對我來說將是一個很好的學習課程,所以我可以在未來複制這個教程,所以再次幫助將會是驚人的。

回答

5
<?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, ' ...'); 
+0

這看起來很漂亮,優雅。 ty這麼多<3 – HollerTrain 2010-12-14 11:42:41

+0

@HollerTrain:在我的答案中,最初'substr()'的參數順序是不正確的。現在已經修復了。使用'mb_strimwidth'的 – Saul 2010-12-14 11:48:49

+0

具有額外的好處,即它可以爲多字節字符產生正確的結果,例如這些「ääææèéêë」。另外請注意,我使用了一個實際的省略號'...'而不是三個點'...'。 – Gordon 2010-12-14 12:04:12

0

你應該在插件,因爲這樣做如果您更改主題,則更改將會發生丟失

+0

這在很多層面上都是錯誤的。 – HollerTrain 2010-12-14 12:08:30

0

你可以試試這個。

$maxlength = 8; 
if (strlen($post->post_title) > $maxlength) 
     echo substr($post->post_title, 0, $maxlength) . ' ...'; 
    else 
     echo $post->post_title; 

所以現在你不需要在所有的代碼行中改變max char。

感謝。