So I know this issue is unique to a specific theme, Karma, and probably other themes by TrueThemes. They say to put [raw][/raw] tags around any third-party shortcodes so that WordPress does not add paragraph tags and line breaks, however this does not work.
It seems that if I add your shortcode, their shortcodes break. One of their separator shortcodes works partially, but has the [raw] tags around it and is not positioned properly. If I try to put [raw] tags around your shortcode, the only change is that the [raw] tags are displayed on the page. Either way, WordPress adds paragraph tags in your shortcode's output and this limits the ability to customize the design.
Fortunately, I can get rid of the [raw] tags by simply not using their shortcodes. I copied their shortcode output and used it instead, and didn't put [raw] tags around your shortcode. This works fairly well, I can manage it, but it seems the [raw] tags would be useful here since WordPress is messing with your shortcodes output.
Any ideas what the problem could be? Conflicting attempts to thwart WordPress's paragraphs?
In case it helps, here is the custom template I am using:
$lcp_display_output = ''; $lcp_display_output .= $this->get_category_link('strong'); $lcp_display_output .= '<ul class="lcp_catlist">'; foreach ($this->catlist->get_categories_posts() as $single): $lcp_display_output .= "<li>"; $lcp_display_output .= '<h3>'.$single->post_title.'</h3>'; $lcp_display_output .= '<span class="img_wrapper">'.$this->get_thumbnail($single).'</span>'; $lcp_display_output .= $this->get_content($single, 'p', 'lcp_content'); $lcp_display_output .= '</li>'; endforeach; $lcp_display_output .= '</ul>'; $this->lcp_output = $lcp_display_output;
...and this is how a post comes out:
<li> <h3>The Title</h3> <span class="img_wrapper"> <a href="POST_URL"> <img src="IMAGE_URL"> </a> </span> <p class="lcp_content"></p> <p>The Content</p> <p></p> </li>