2012-02-28 18 views
0

私はのfunctions.phpに以下を追加しました:カスタム機能(WP)

function excerpt($limit) { 
global $id; 
    $excerpt = explode(' ', get_the_excerpt(), $limit); 
    if (count($excerpt)>=$limit) { 
    array_pop($excerpt); 
    $excerpt = implode(" ",$excerpt).'... <p class="readmore"><a href="'. get_permalink($id) . '" title="' . the_title_attribute(array('echo' => 0, 'before' => 'Permalink to: ', 'after' => '')) . the_title() . '">Read More &#187;</a></p>'; 
    } else { 
$excerpt = implode(" ",$excerpt).'... <p class="readmore"><a href="'. get_permalink($id) . '" title="' . the_title_attribute(array('echo' => 0, 'before' => 'Permalink to: ', 'after' => '')) . the_title() . '">Read More &#187;</a></p>'; 
    } 
    $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt); 
    return $excerpt; 
} 

、それは抜粋の一部として、記事のタイトルを返します何らかの理由(投稿タイトルが最初に来て、タイトルの間にスペースを入れずに抜粋してください&抜粋 - ここにサンプル:http://autisticadvocacy.uniongraphics.org/category/news/)。誰か私が間違っていることを教えてもらえますか?

答えて

1
$excerpt = implode(" ",$excerpt) 
    . '... <p class="readmore"><a href="' 
    . get_permalink($id) 
    . '" title="' 
    . the_title_attribute(array(
     'echo' => 0, 
     'before' => 'Permalink to: ', 
     'after' => '')) 
    ### change is in this line. (the_title() removed) 
    . '">Read More &#187;</a></p>' 
    ; 

コードを書く方法は、読みにくく、問題が発生したときにデバッグするのが難しいです。それを改善しようとする。より良いフォーマットされた文字列の便利な機能がsprintf()次のとおりです。

$excerpt = sprintf('%s ... <p class="readmode"><a href="%s" title="%s">Read More &#187;</a></p>' 
    , implode(" ",$excerpt), get_permalink($id) 
    , the_title_attribute(array('echo' => 0, 'before' => 'Permalink to: ', 'after' => '')) 
); 
0

は抜粋やコンテンツのためのあなたのfunctions.phpファイルに次のコードを追加します。あなたのループ内

<?php 
// Custom Excerpt 
function excerpt($limit) { 
$excerpt = explode(' ', get_the_excerpt(), $limit); 
if (count($excerpt)>=$limit) { 
array_pop($excerpt); 
$excerpt = implode(" ",$excerpt).'...'; 
} else { 
$excerpt = implode(" ",$excerpt); 
} 
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt); 
return $excerpt; 
} 

// Content Limit 
function content($limit) { 
$content = explode(' ', get_the_content(), $limit); 
if (count($content)>=$limit) { 
array_pop($content); 
$content = implode(" ",$content).'...'; 
} else { 
$content = implode(" ",$content); 
} 
$content = preg_replace('/\[.+\]/','', $content); 
$content = apply_filters('the_content', $content); 
$content = str_replace(']]>', ']]&gt;', $content); 
return $content; 
} 
?> 

さて、代わりにthe_contentを使用しての()またはthe_excerptは、抜粋($リミット)またはコンテンツ($限度)を使用します。

あなたは300個の言葉にあなたの抜粋を制限する場合のコードは次のようになります。

<?php echo excerpt(50); ?> 
<?php echo content(300); ?> 

を私は文字が限定された抜粋を表示するための別の方法を得ました。ここにはfunctions.phpファイルのコードがあります。

function get_excerpt(){ 
$excerpt = get_the_content(); 
$excerpt = preg_replace(" (\[.*?\])",'',$excerpt); 
$excerpt = strip_shortcodes($excerpt); 
$excerpt = strip_tags($excerpt); 
$excerpt = substr($excerpt, 0, 100); 
$excerpt = substr($excerpt, 0, strripos($excerpt, " ")); 
$excerpt = trim(preg_replace('/\s+/', ' ', $excerpt)); 
$excerpt = $excerpt.'... <a href="'.get_the_permalink().'">Read More</a>'; 
return $excerpt; 
} 

この後、カスタマイズした文字を文字で表示する場所を追加する必要があります。

<?php echo get_excerpt(); ?> 

出典:http://www.e2soft.com/blog/custom-excerpt-and-content-limit-wordpress/

関連する問題