Open to anybody who can simplify this but here’s what I came up with that worked for me.
First thing’s first – get the gallery, using get_post_gallery()
, as soon as the loop starts:
<?php if( have_posts() ) : ?>
<?php while( have_posts() ) :
the_post();
$gallery = get_post_gallery();
$content = strip_shortcode_gallery( get_the_content() );
?>
<div id="content">
<?php echo $content; ?>
</div> <!-- id="content" -->
<div id="gallery">
<?php echo $gallery; ?>
</div> <!-- id="gallery" -->
<?php endwhile; ?>
<?php endif; ?>
strip_shortcode_gallery()
Function – functions.php
function strip_shortcode_gallery( $content ) {
preg_match_all( "https://wordpress.stackexchange.com/" . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER );
if ( ! empty( $matches ) ) {
foreach ( $matches as $shortcode ) {
if ( 'gallery' === $shortcode[2] ) {
$pos = strpos( $content, $shortcode[0] );
if( false !== $pos ) {
return substr_replace( $content, '', $pos, strlen( $shortcode[0] ) );
}
}
}
}
return $content;
}
Resources:
Stackoverflow:
What I was originally going off of, which didn’t work as expected: