Support » Themes and Templates » How to modify the_excerpt

  • when I view the_excerpt I get an excerpt of the page 55 words long that ends with […]

    I would like to change the […] to a link that says [Read more…] or something. Where do I find the code that controls this display, or how do I change it?



Viewing 15 replies - 1 through 15 (of 18 total)
  • You cannot modify the_excerpt() in any way, unless you modify core wordpress functions, which I do not recommend.


    Or, change the length with a plugin called Advanced-Excerpt.

    I am passing the_excerpt_rss() as a Flash parameter on an external page (the loop is working fine), but my code will not work with the newline at the beginning. I have tried using str_replace(), trim(), ltrim() and it simply won’t remove the unwanted line break.

    define('WP_USE_THEMES', false);
    // code within swfobject
    flashvars = {<?php $args1 = array('cat=1'); query_posts($args1);
    $posts = get_posts('numberposts=1&cat=1');
    foreach ($posts as $post) : start_wp(); ?>
       permalink:"<?php the_permalink(); ?>",
       title:"<?php the_title(); ?>",
       excerpt:"<?= ltrim(the_excerpt_rss(),'\n,\r'); ?>"
    <?php endforeach; ?>}


    flashvars = {
       title:"The next big thing.",
    So this is my new blog. You may or may not have noticed it is connected to my photo gallery via the links below my logo: I wanted to make it easy to navigate around the backside of my website. Think of this collection as a reverse mullet — party in the front and business [...]"}

    The line break after excerpt:" is causing an error in my javascript code. The flashvars work fine when I remove that variable, so I know that is causing the error. Any suggestions?

    hi there,
    passing complex values via flashvars is kinda complicated…

    flash and wp can talk using rss feeds (reading the xml) or using the database (via AMFPHP)

    usually i grab this values from the rss/xml


    @brasofilo: It seems simple enough, I just need to somehow process the excerpt content before inserting it into my Javascript embed. I can successfully pull in the excerpt content via the_excerpt_rss() (no html tags), but I need to remove the line break to get it to work with SWFObject. Still looking for a solution.

    You cannot modify the_excerpt() in any way…

    Of course, this isn’t true. You can write your own filters (as plugins) to modify the behaviour of the_excerpt, including a ‘read more’ link. I write two articles about that on my site


    great article, Peter, thanks for that

    i dealt with this problem in actionscript doing a search/replace so i could eliminate all line breaks: “\n” or “< br >”, and thus converting two or more paragraphs into one single line

    but then i was receiving xml data…
    if you really wanna pass it by flashvars your only option is to look a php function that does that and then print the result to a flashvar

    in this address i found this function (not tested):

    function remove_extra_linebreaks($string) {
      $new_string=urlencode ($string);
      $new_string=ereg_replace("%0D", " ", $new_string);
      $new_string=urldecode  ($new_string);
      return $new_string;

    so your code would be something like this (not tested):

    <?php $myexcerpt = remove_extra_linebreaks(the_excerpt()); ?>
    var flashvars = {
      flashText: "<?php echo $myexcerpt; ?>"

    i just realized this post isn’t about flash… i was looking for something else when i arrived here…
    well, whatever, the info is recorded on wp databases!
    long and prosperous life, WP!!

    I will take the blame for changing the topic to Flash, but it is still about modifying the_excerpt (or the_excerpt_rss)!

    Thanks for the function… I will give it a try. And yes, the problem is in Javascript, not Actionscript — but no matter what I tried previously with PHP, I could not get rid of that line break. So hopefully your function will work! I will report back…

    yes, please
    i like happy endings
    and hate unfinished threads

    A quick and easy way would be to type your own excerpts when you publish your posts. If you enter something in the excerpt box in the post editor only that which you enter will be shown in the excerpt.

    Another way would be to code to show the full content. You then however add a more link to the post. This will ensure that only the bit before the more link is shown.

    I think the solution is a lot more easier. You only need to use the function the_content() instead of the_excerpt and you’ll be able to change the […] for a “Read more…” or whatever text you’ll choose.

    The solution is explained in the official Docs from WordPress:

    Detailed explanation on how to use the_content()

    I was able to easily change the […] by a “Read more…” adding the quicktag <!–more–> to the html post and replacing the function the_excerpt() by the_content(‘Read more…’);

    There’s a second solution exaplained in the official Docs from WordPress that uses filters to replace the text […] in the_excerpt() by a string you define, find the link below:

    the_excerpt() vs. the_content()

    Hope it helps.

    I finally figured out how to solve my flashvars problem above……
    I just used “get_the_excerpt” to pull my manual excerpt into swfobject, and it came in without the line break or html tags. SWEET!


    <?php $args1 = array('cat=1');
      $posts = get_posts('numberposts=1&cat=1');
      foreach ($posts as $post) : start_wp();
      $excerpt = get_the_excerpt();?>
    <script type="text/javascript">
    	var flashvars = {};
    	var params = {};
    	params.wmode = "transparent"; params.allowScriptAccess = 'true'; params.scaleMode = "noscale";
    	var attributes = {};
    		"flashContainer", "100%", "100%", "9.0.0",
    		{permalink:"<?php the_permalink(); ?>",
    		 the_title:"<?php strtolower(the_title()); ?>",
    		 excerpt:'<?php global $excerpt; echo $excerpt; ?>'},
    		 params, attributes);
    <?php endforeach; ?>

    You can change your display of excerpt by changing in formatting.php file.
    you will find this file in wp-includes folder.

    go for function wp_trim_excerpt();
    Here you can change the number of words to display
    $excerpt_length = apply_filters(‘excerpt_length’, 55);
    55 is default.
    $excerpt_more = apply_filters(‘excerpt_more’, ‘ ‘ . ‘[…]’);
    you can change the text and able to provide link of post to […]
    $excerpt_more = apply_filters(‘excerpt_more’, ‘ ‘ . “a href='”.post_permalink($post->ID).”‘>[Read More…]”);

    Let me know if it does not work for you.

Viewing 15 replies - 1 through 15 (of 18 total)
  • The topic ‘How to modify the_excerpt’ is closed to new replies.