Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm using a basic shortcode to wrap some text in an expandable div. What appears to be happening is that the wpautop is inserting a stray closing paragraph tag at the beginning and a stray opening paragraph tag at the end of the content being wrapped.

Here's how it looks in the editor:

[expandable text="Show Content"]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras fermentum facilisis malesuada. Suspendisse potenti. Aenean dui turpis, ornare in ipsum eget, vestibulum egestas nulla.

[/expandable]

And the rendered HTML:

<div class="expandable"><a href="#" class="expand-link">Show Content</a></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras fermentum facilisis malesuada. Suspendisse potenti. Aenean dui turpis, ornare in ipsum eget, vestibulum egestas nulla.</p>
<p></div>

This is the shortcode function:

function expandable_content_shortcode( $atts, $content = null ) {
    $args = shortcode_atts( array(
        'text' => __( 'View More', $this->plugin_slug ),
        'linklocation' => 'top'
    ), $atts, 'expandable' );

    if ( $args['linklocation'] === 'top' ) {
        $output = '<div class="expandable-content"><a href="#" class="expand-link">' . $args['text'] . '</a>' . $content . '</div>';
    } else {
        $output = '<div class="expandable-content">' . $content . '<a href="#" class="expand-link">' . $args['text'] . '</a></div>';
    }

    return $output;
}
share|improve this question
    
remove line breaks within shortcode you've added in editor. –  Anjum Sep 3 '13 at 19:20
    
The shortcode needs to be able to support line breaks within it so I'm not able to just have the author remove outer line breaks. –  hereswhatidid Sep 3 '13 at 19:25
    
then you need to remove wpautop filter or change wpautop execution priority. –  Anjum Sep 3 '13 at 19:46
    
Changing the priority does not solve the issue and removing paragraph and line break display isn't an option. –  hereswhatidid Sep 3 '13 at 19:54

1 Answer 1

Install the WP RAW HTML plugin.

This inserts extra check boxes to the the right of each post in the admin - check the box that says 'Disable automatic paragraph creation', this will solve your problem.

But make sure you have surrounded content on that post with the correct

tags.

You can do this by removing a filter, but this solution allows you to only disable it when required and is much easier.

share|improve this answer
    
This still leaves me with having to force the entire post to be without paragraph formatting which is still not going to work for the editors of the site. –  hereswhatidid Sep 6 '13 at 14:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.