2011-05-03 66 views
0

我完全新的使用WordPress那麼容易:)WordPress的 - 摘自字符替代?

我在模板下面的代碼:

<?php excerpt(20);?> 

這樣做是限制使用20個字的文字。我現在想知道是否有某種由字符,而不是限制的話類似的功能嗎?

謝謝!

回答

1

WordPress的不支持的摘錄方法的字符分隔符,有一個名爲Advanced Excerpt,做插件。安裝就可以調用the_advanced_excerpt('length=20&use_words=0')

+0

謝謝,用這一個。 – priktop 2011-05-04 10:02:07

1

我在functions.php的使用:

function truncate ($str, $length=10, $trailing='...'){ 
    // take off chars for the trailing 
    $length-=mb_strlen($trailing); 
    if (mb_strlen($str)> $length){ 
     // string exceeded length, truncate and add trailing dots 
     $str = mb_substr($str,0,$length); 
     $str = explode('. ',$str); 
     for($i=0; $i<(sizeof($str)-2); $i++): 
      $newstr .= $str[$i].". "; 
     endfor; 
     return $newstr; 
    } else{ 
     // string was already short enough, return the string 
     $res = $str; 
    } 
    return $res; 
} 

應該截斷的字符數,但隨後回截斷進一步截斷前的最後階段。但是,當您的摘錄包含鏈接或其他標記時,確實存在問題 - 換句話說,最好在帖子中使用摘錄字段,而不是使用此功能自動摘錄,因爲您無法在摘錄字段中使用HTML 。

2

後,我用這個:

add_filter('excerpt_length', 'my_excerpt_length'); 
function my_excerpt_length($length) { 
    return '500'; 
} 

function better_excerpt($limit, $id = '') { 
global $post; 

if($id == '') $id = $post->ID; 
else $id = $id; 

$postinfo = get_post($id); 
if($postinfo->post_excerpt != '') 
    $post_excerpt = $postinfo->post_excerpt; 
else 
    $post_excerpt = $postinfo->post_content; 

$myexcerpt = explode(' ', $post_excerpt, $limit); 
if (count($myexcerpt) >= $limit) { 
    array_pop($myexcerpt); 
    $myexcerpt = implode(' ',$myexcerpt).'...'; 
} else { 
    $myexcerpt = implode(' ',$myexcerpt); 
} 
$myexcerpt = preg_replace('`\[[^\]]*\]`','',$myexcerpt); 
$stripimages = preg_replace('/<img[^>]+\>/i', '', $myexcerpt); 
return $stripimages; 
} 

然後在我的主題文件,我只是把它稱爲:

better_excerpt('50') //50 being how many words I want 

有用的自定義插件/部件了。

+0

這種方法只限於話,問題是,如果有一種方法用字符,而不是的話去做。 – Mark 2011-05-03 19:08:14

+0

哦 - 我錯過了!我一定誤解了 - 我以爲你想要的是文字,而不是字符。我相信* *的「array_pop()」的部分是什麼力量的話。如果你刪除它,它應該做字符。我曾經使用過這段代碼,它只用於限制字符(因爲那時我不知道那個函數),而且據我所知,這就是我爲了尋找單詞而添加的所有內容。您可以嘗試取消該行的註釋並查看它是否有效。自從Iv'e以這種方式完成之後已經有一段時間了,所以你可能需要玩一下。 – Shelly 2011-05-06 15:13:37

0

請使用限制文章內容驗證碼...

<a href="<?php the_permalink(); ?>"><?php substr($post->post_content, 0, xy); ?> ...</a> 

更改XY的限制....