0

I have a template file stick.php. I am calling number of post by category id on stick.php, all i want to have the post titles displayed the first five words of post title.

I am beginner and have no idea of how the code should look like.

I am using the following code to callback the specific post from a category

 <?php $catquery = new WP_Query( 'cat=48&posts_per_page=7' ); 

 while($catquery->have_posts()) : $catquery->the_post(); ?>     
     <?php the_post_thumbnail( array(50, 50) ); ?>
     <a class="aclass"  href="<?php the_permalink() ?>" rel="bookmark">
     <?php the_title(); ?></a>
 <?php endwhile; ?>

Here at the_title(); instead of displaying full title, I only need to display first five words.

piet.t
  • 11,718
  • 21
  • 43
  • 52
Narendra
  • 1
  • 3
  • 3
    Possible duplicate of [How can I truncate a string to the first 20 words in PHP?](http://stackoverflow.com/questions/965235/how-can-i-truncate-a-string-to-the-first-20-words-in-php) – naththedeveloper Apr 13 '17 at 07:39

2 Answers2

1

You can use get_the_title() instead of the_title() and trim the string to show first 5 words. Use this code.

<?php $catquery = new WP_Query( 'cat=48&posts_per_page=7' ); 

 while($catquery->have_posts()) : $catquery->the_post(); ?>     
     <?php the_post_thumbnail( array(50, 50) ); ?>
     <?php $title = get_the_title(get_the_ID()); ?>
     <a class="aclass"  href="<?php the_permalink() ?>" rel="bookmark">
     <?php echo wp_trim_words($title,5); ?></a>

 <?php endwhile; ?>
sarath
  • 698
  • 6
  • 20
0

Try like this, it should work,

simply use this where ever you want to display your title with limited words

<?php $catquery = new WP_Query( 'cat=48&posts_per_page=7' ); while($catquery->have_posts()) : $catquery->the_post(); ?> <?php the_post_thumbnail( array(50, 50) ); ?><a class="aclass"  href="<?php the_permalink() ?>" rel="bookmark"><?php echo wp_trim_words(the_title(),5); ?></a> <?php endwhile; ?>

replace number 5 in above code with whatever number of words you need to display.

Prabu
  • 530
  • 2
  • 9