WordPress.org

Forums

How to modify the_excerpt (19 posts)

  1. mrwolfy
    Member
    Posted 6 years ago #

    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?

    Thanks

    Wolfy

  2. Peter Boosten
    Member
    Posted 6 years ago #

    You cannot modify the_excerpt() in any way, unless you modify core wordpress functions, which I do not recommend.

    Peter

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

  4. marcy_sss
    Member
    Posted 6 years ago #

    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.

    <?php
    define('WP_USE_THEMES', false);
    require('./blog/wp-blog-header.php');
    ?>
    // 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; ?>}

    Outputs:

    flashvars = {
       permalink:"http://marcysutton.com/blog/?p=1",
       title:"The next big thing.",
       excerpt:"
    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?

  5. brasofilo
    Member
    Posted 5 years ago #

    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

    title
    link
    content
    description
    pubDate
  6. marcy_sss
    Member
    Posted 5 years ago #

    @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.

  7. Peter Boosten
    Member
    Posted 5 years ago #

    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

    Peter

  8. brasofilo
    Member
    Posted 5 years ago #

    great article, Peter, thanks for that

    marcy,
    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):

    <?php
    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; ?>"
    };
  9. brasofilo
    Member
    Posted 5 years ago #

    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!!
    ;)

  10. marcy_sss
    Member
    Posted 5 years ago #

    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...

  11. brasofilo
    Member
    Posted 5 years ago #

    yes, please
    i like happy endings
    and hate unfinished threads
    :o)

  12. Arnold Goodway
    Member
    Posted 5 years ago #

    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.

  13. RaulS
    Member
    Posted 5 years ago #

    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.

  14. marcy_sss
    Member
    Posted 5 years ago #

    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!

    http://www.marcysutton.com/

    <?php $args1 = array('cat=1');
      query_posts($args1);
      $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 = {};
    	swfobject.embedSWF("preload.swf",
    		"flashContainer", "100%", "100%", "9.0.0",
    		"inc/expressInstall.swf",
    		{permalink:"<?php the_permalink(); ?>",
    		 the_title:"<?php strtolower(the_title()); ?>",
    		 excerpt:'<?php global $excerpt; echo $excerpt; ?>'},
    		 params, attributes);
    </script>
    <?php endforeach; ?>
  15. uttamtakalkar
    Member
    Posted 5 years ago #

    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 [...]
    Like
    $excerpt_more = apply_filters('excerpt_more', ' ' . "a href='".post_permalink($post->ID)."'>[Read More...]");

    Let me know if it does not work for you.

  16. Roy
    Member
    Posted 5 years ago #

  17. pushpinderbagga
    Member
    Posted 5 years ago #

    I am using the excerpt as

    <?php the_excerpt( __( '(More ...)' , 'p2' ) ); ?>

    but alas, its actually not stripping the <br /> and the <p> tags

    :(

  18. pushpinderbagga
    Member
    Posted 5 years ago #

    @uttamtakalkar - the formatting.php uses strip_tags only and its not stripping the paragraphs and the line breaks in my excerpts.

    and clues?

  19. marcy_sss
    Member
    Posted 5 years ago #

    Try get_the_excerpt(). It worked for me!

Topic Closed

This topic has been closed to new replies.

About this Topic