2017-06-06 55 views
0

我的循環如下所示:WordPress的摘錄字符數不工作

<!-- loop for the posts here --> 
<?php 
    $args = array(
     'post_type' => 'post', 
     'posts_per_page' => 3, 
     'category_name' => 'news' 
    ); 
    $query = new WP_Query($args); 
    while($query->have_posts()) : $query->the_post(); 
?> 
    <div class="news_box_content"> 
     <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5> 
     <figure><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a></figure> 
     <?php if($post->post_excerpt) { ?> 
      <p><?php echo get_the_excerpt(); ?></p> 
      <a href="<?php the_permalink(); ?>">Read more...</a> 
     <?php } else { 
      the_content('Read More'); 
     } ?> 
    </div> 
<?php endwhile; wp_reset_postdata(); ?> 

我用了一個函數來計算摘錄長度,但它無法正常工作。

function custom_excerpt_length(){ 
    return 10; 
} 
add_filter('excerpt_length', 'custom_excerpt_length'); 

如何限制任何摘錄中的字符數?

+0

你需要調用您的自定義函數摘錄在你的循環即custom_excerpt_length();而不是get_the_excerpt(); – Samyappa

+0

哎呀..你說得對。 –

回答

0

無需額外的過濾器

echo substr(get_the_excerpt(), 0,10); 
+0

它適用於摘錄,但不適用於內容。 這個工作:<?php echo substr(get_the_excerpt(),0,300); ?> 但是這不起作用:echo substr(the_content('Read More'),0,150); –

0

試試這一個。我總是用這一個

<?php 
     $content = get_the_content(); 
     $content = strip_tags($content); 

     $dots = strlen(substr($content,0,50)) < 50 ? " " : "..."; 
     echo substr($content,0,50) . $dots; 
     ?>