php’s strip_tags() won’t work

I’m trying to tweak a tiny bit a wordpress, but i am level 0 in php, so i kinda suck :/

I want to add a custom ‘tweet this’ button (i know there already is a gazillion of them, i just wanted to do it on my own, for fun)

Read More

So, i’m trying this :

<a href="http://twitter.com/home?status=<?php strip_tags(the_excerpt()) ?>" >tweet this</a>

the_excerpt() returns "<p> ... excerpt ... </p>" and the strip_tags function does not strip those <p> tags !

What do i do wrong ?

Thanks, and sorry if it is obvious.

Related posts

Leave a Reply

2 comments

  1. Your problem is that the_excerpt() does not return its contents to strip_tags(), but outputs it directly using echo. So strip_tags() (which would need a preceding echo by the way to do any work) can’t do anything.

    Use get_the_excerpt() instead (line break inserted for clarity, remove when using):

    <a href="http://twitter.com/home?status=
    <?php echo strip_tags(get_the_excerpt()); ?>" >tweet this</a>
    

    By the way, I would also urlencode() the excerpt, you’re bound to run into trouble otherwise if it contains "double quotes or other funny characters.

  2. This doesn’t look right by common sense: <?php strip_tags(the_excerpt()) ?>, then the WP doc explained, the_excerpt’s API doc, it said it echoes instead of returning it.
    Well, use ob_start to workaround.

    ob_start("callback");
    the_excerpt();
    $excerpt = ob_get_contents();
    
    ?>
    <a href="http://twitter.com/home?status=<?php echo strip_tags($excerpt) ?>" >tweet this</a>
    <?php
    

    Note: I don’t have any WordPress API experience.