Quantcast
Channel: WordPress › Support » Forum: Hacks - Recent Topics
Viewing all articles
Browse latest Browse all 8245

RavanH on "Shortcode inline with text always wrapped in P tags?"

$
0
0

Hi all,

I've search the forums and internet for this issue but only found very old (2+ years) threads about this. And some 'solutions' or rather work-arounds that all have their own downside.

In the codex on http://codex.wordpress.org/Shortcode_API under Output, I read:

wpautop recognizes shortcode syntax and will attempt not to wrap p or br tags around shortcodes that stand alone on a line by themselves. Shortcodes intended for use in this manner should ensure that the output is wrapped in an appropriate block tag such as <p> or <div>.

That part 'that stand alone on a line by themselves' is key. What if a user does not put that shortcode on a single line but places it at the beginning of a new paragraph line? In that case, the output, even when it is a DIV, gets wrapped inside the P tag together with the text that follows.

Another example: The user put two shortcodes (can even be different kinds) with a space between them together on one single line ? Then again, there are P tags thrown around. But funnily NOT when there is no space between the shortcodes...

The only reasonable solution I found is an old trick:

//move wpautop filter to AFTER shortcode is processed
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99);
add_filter( 'the_content', 'shortcode_unautop', 100);

which does seem still effective but it will affect ALL other shortcodes, I suppose...

Is there really no cleaner way?


Viewing all articles
Browse latest Browse all 8245

Trending Articles