2012-02-28 3 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); ?> 

나는 문자로 제한된 발췌를 표시하는 또 다른 방법이있어. 여기 function.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/

관련 문제