post_content;
if ( preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids) ) {
$images_id = $ids[1];
} else {
$images_id = null;
}
return $images_id;
}
function the_mx_limit_ids( $length ) {
/* Helper function to grab supplied ids and limit them via array_slice */
/* Returns a string of comma separated ids at the length specified */
// Get ids from the_mx_get_gallery_ids() (regular expression results)
$init_ids = the_mx_get_gallery_ids();
// Turn the comma separated string into an array
$expl_ids = explode( ',', $init_ids );
// Chop up the exploded array from the end; length equals the total number of ids
$expl_ids = array_slice( $expl_ids, 0, intval( $length ) );
// Turn the array back into a comma separated string
$impl_ids = implode( ',', $expl_ids );
// For debugging
/*print_r( $expl_ids );
echo '
';
print_r( $impl_ids );
echo '
';*/
return $impl_ids;
}
function the_mx_number_thumbs_switcher() {
/* Function to limit gallery thumbnails by number */
$gallery_thumbcount = get_theme_mod( 'the_mx_limit_gal_thumbs' );
switch( $gallery_thumbcount ) {
case 'one':
return the_mx_limit_ids(1);
break;
case 'two':
return the_mx_limit_ids(2);
break;
case 'three':
return the_mx_limit_ids(3);
break;
case 'four':
return the_mx_limit_ids(4);
break;
case 'five':
return the_mx_limit_ids(5);
break;
case 'six':
return the_mx_limit_ids(6);
break;
case 'seven':
return the_mx_limit_ids(7);
break;
case 'eight':
return the_mx_limit_ids(8);
break;
case 'nine':
return the_mx_limit_ids(9);
break;
case 'ten':
return the_mx_limit_ids(10);
break;
case 'eleven':
return the_mx_limit_ids(11);
break;
case 'twelve':
return the_mx_limit_ids(12);
break;
default:
return the_mx_limit_ids(6);
}
}
/* Function to filter gallery shortcode display only in Gallery Post Format */
function the_mx_limited_gallery( $attr ) {
$post = get_post();
$link_image_to = the_mx_medialink_switcher(); // Customizer controls
$mx_colcount = the_mx_gal_colcount_switcher(); // Customizer controls
$mx_thumbcount = the_mx_number_thumbs_switcher(); // Customizer controls
if( get_post_format() == 'gallery' ) { // opens gallery post format check
if( !is_single() ) { // opens non single page if statement
static $instance = 0;
$instance++;
if ( ! empty( $attr['ids'] ) ) {
// 'ids' is explicitly ordered, unless you specify otherwise.
if ( empty( $attr['orderby'] ) ) {
$attr['orderby'] = 'post__in';
}
$attr['include'] = $attr['ids'];
}
// setup shortcode attributes
$atts = null;
$atts = shortcode_atts( array(
'order' => 'ASC',
'orderby' => 'post__in',
'id' => $post ? $post->ID : 0,
'itemtag' => 'figure',
'icontag' => 'div',
'captiontag' => 'figcaption',
'columns' => $mx_colcount,
'include' => $mx_thumbcount,
'size' => 'gallery-thumb',
'link' => $link_image_to,
), $atts );
$id = intval( $atts['id'] );
if ( ! empty( $atts['include'] ) ) {
$_attachments = get_posts( array(
'include' => $atts['include'],
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => $atts['order'],
'orderby' => $atts['orderby'],
) );
$attachments = array();
foreach ( $_attachments as $key => $val ) {
$attachments[$val->ID] = $_attachments[$key];
}
} elseif ( ! empty( $atts['exclude'] ) ) {
$attachments = get_children( array(
'post_parent' => $id,
'exclude' => $atts['exclude'],
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => $atts['order'],
'orderby' => $atts['orderby']
) );
} else {
$attachments = get_children( array(
'post_parent' => $id,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => $atts['order'],
'orderby' => $atts['orderby']
) );
}
if ( empty( $attachments ) ) {
return '';
}
$itemtag = tag_escape( $atts['itemtag'] );
$captiontag = tag_escape( $atts['captiontag'] );
$icontag = tag_escape( $atts['icontag'] );
$valid_tags = wp_kses_allowed_html( 'post' );
if ( ! isset( $valid_tags[ $itemtag ] ) ) {
$itemtag = 'figure';
}
if ( ! isset( $valid_tags[ $captiontag ] ) ) {
$captiontag = 'figcaption';
}
if ( ! isset( $valid_tags[ $icontag ] ) ) {
$icontag = 'div';
}
$columns = intval( $atts['columns'] );
$float = is_rtl() ? 'right' : 'left';
$selector = "gallery-{$instance}";
$gallery_style = '';
$size_class = sanitize_html_class( $atts['size'] );
$gallery_div = "