So I stumbled upon this problem of images having their own p tags and messing up the layout, they were inserted by the core system of WP. And after a lot of searching and trial of codes written by inexperienced coders, I found the solution. WordPress has this thing called wpautop that inserts p tags whenever you press enter in the visual editor and whatever. This thing tries to avoid conflicting types such as shortcodes but sometimes it cannot detect things well and pukes out another p tag. All you have to do, which seems to work for me is create a folder in the plugins folder and a php file inside that folder with the same name and insert this: Code: <?php remove_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'wpautop' , 99); then you activate the plugin from your panel. Hope it helped.