496 posts
  • Has referred 1000+ members
  • Has sold $250,000+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+8 more
pixelentity says

care to share the full code. did you add it in a filter function?
yeah, same as quoted example, inside a “the_content” filter

BF

438 posts
  • Has been part of the Envato Community for over 2 years
  • Has sold $5,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Located in Europe
+1 more
Pixelous says

Bookmarked this.

707 posts
  • Has referred 10+ members
  • Has sold $10,000+ on Envato Market
  • Has been a beta tester for an Envato feature
  • Has collected 10+ items on Envato Market
+2 more
ChillThemes says
308 posts
  • Has referred 1+ members
  • Has sold $75,000+ on Envato Market and is now an Elite Author
  • Has been a beta tester for an Envato feature
  • Has collected 10+ items on Envato Market
+4 more
brainbuzzmedia says

I still haven’t found a solution to this after looking through about 5 threads. I am using what I think Pixelentity meant with his last two replies but it isn’t removing the extra junk. Is this code incorrect Pixelentity?

     add_filter('the_content', 'shortcode_empty_paragraph_fix');

    function shortcode_empty_paragraph_fix($content)
    {   
    $block = join("|",array("col"));
    // opening tag
    $rep = preg_replace("/(<p>)?\[($block)(\s[^\]]+)?\](<\/p>|<br />)?/","[$2$3]",$content);
    // closing tag
    $rep = preg_replace("/(</p><p>)?\[\/($block)](<\/p>|<br />)/","[/$2]",$rep);
    return $rep;
    }
</p>
(without the weird end p tag that tf adds)
496 posts
  • Has referred 1000+ members
  • Has sold $250,000+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+8 more
pixelentity says

I am using what I think Pixelentity meant with his last two replies but it isn’t removing the extra junk. Is this code incorrect Pixelentity?
yes but you need to list in the block array all your block shortcodes like columns, tabs, accordions and similar

$block = join("|",array("shortcode1","shortcode2","shortcode3"));
1 post
  • Has been part of the Envato Community for over 3 years
  • Has collected 10+ items on Envato Market
murderbydeath says

Erm…how about just this -

p:empty { display: none; }

Or, to cover your bases and hide all empty elements,

*:empty { display: none; }

390 posts
  • Has referred 100+ members
  • Has sold $250,000+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+5 more
EugeneO says

Erm…how about just this -

p:empty { display: none; }

Or, to cover your bases and hide all empty elements,

*:empty { display: none; }
None of the PHP solutions have worked consistently for me so I have started using this CSS solution. It works well so far but I’ll have to see if the reviewers say anything about it when I upload my next item.
707 posts
  • Has referred 10+ members
  • Has sold $10,000+ on Envato Market
  • Has been a beta tester for an Envato feature
  • Has collected 10+ items on Envato Market
+2 more
ChillThemes says

I’ve used this in the past, when I use to bundle shortcodes in my themes and it worked great. They shouldn’t reject you for using these functions, they don’t modify the_content.

function prefix_remove_wpautop( $content ) {
    $content = do_shortcode( shortcode_unautop( $content ) );
    $content = preg_replace( '#^<\/p>|^<br />|<p>$#', '', $content );
    return $content;
}
</p>

OR

function prefix_remove_wpautop( $content ) {
    $content = trim( wpautop( do_shortcode( $content ) ) );
    if ( substr( $content, 0, 4 ) == '')
        $content = substr( $content, 4 );
    if ( substr( $content, -3, 3 ) == '<p>')
        $content = substr( $content, 0, -3);
    $content = str_replace( array( '</p><p></p>' ), '', $content );
    return $content;
}

Usage:

return prefix_remove_wpautop( $content );
39 posts
  • Has referred 50+ members
  • Has sold $125,000+ on Envato Market
  • Has been a beta tester for an Envato feature
  • Has collected 10+ items on Envato Market
+4 more
DeliciousThemes says

For what it’s worth, I had been following misguided advice from tutorials that should be taken offline before I ran across this old but useful post by Viper007Bond: http://www.viper007bond.com/2009/11/22/wordpress-code-earlier-shortcodes/ Preprocessing shortcodes that output user-supplied content end up showing correctly without all the annoying paragraph and break formatting issues while third-party plugin shortcodes continue to function normally. I only implemented this recently and so far so good. Anybody have a reason that this is not a good solution?

This is what I`m using too. So far so good. I can`t believe how such a big issue can be solved by only adding a number at the end of the add_filter('the_content', 'do_shortcode');.

add_filter('the_content', 'do_shortcode', 7);
1 post
  • Has been part of the Envato Community for over 5 years
  • Has collected 10+ items on Envato Market
  • Sells items exclusively on Envato Market
  • Located in United Kingdom
ajowell100 says
All
function clean_shortcodes($content) {   
    $array = array (
        '<p>[' => '[', 
        ']</p>' => ']',
        '<p><span>[' => '[', 
        ']</span></p>' => ']', 
        ']<br />' => ']'
    );

    $content = strtr($content, $array);
    return $content;
}
add_filter('the_content', 'clean_shortcodes');
Works for me.
by
by
by
by
by
by