• Resolved ccaballero

    (@ccballero)


    Hello! I’m having an issue with the player gallery where it’s displaying this code above the player images (gallery number is different depending on the list, but all lists are affected) and then displays the players in one column below that:

    #sp-player-gallery-492 { margin: auto; } #sp-player-gallery-492 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 33%; } #sp-player-gallery-492 img { border: 2px solid #cfcfcf; } #sp-player-gallery-492 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */

    I found gallery_shortcode() in wp-includes/media.php but I don’t know enough about php to see if there’s anything wrong in there, but I’ll post what appears to be the relevant code below.

    Another admin on the site was adding some new players over the weekend and said it looked fine before she did that.

    It happens with the short code as well as just selecting the player list in the Team page settings. If I switch it to the List view, it looks like it should, so it’s only the gallery view.

    The theme and all plugins are up to date. Changing the theme and deactivating all the other plugins doesn’t fix it. I’ve also checked my media and gallery settings and tried changing some things, but nothing is fixing it.

    Let me know if there’s any other info I can give you to help track down the issue! Thanks!

    media.php code:

    add_shortcode( 'gallery', 'gallery_shortcode' );
    
    /**
     * Builds the Gallery shortcode output.
     *
     * This implements the functionality of the Gallery Shortcode for displaying
     * WordPress images on a post.
     *
     * @since 2.5.0
     *
     * @param array $attr {
     *     Attributes of the gallery shortcode.
     *
     *     @type string       $order      Order of the images in the gallery. Default 'ASC'. Accepts 'ASC', 'DESC'.
     *     @type string       $orderby    The field to use when ordering the images. Default 'menu_order ID'.
     *                                    Accepts any valid SQL ORDERBY statement.
     *     @type int          $id         Post ID.
     *     @type string       $itemtag    HTML tag to use for each image in the gallery.
     *                                    Default 'dl', or 'figure' when the theme registers HTML5 gallery support.
     *     @type string       $icontag    HTML tag to use for each image's icon.
     *                                    Default 'dt', or 'div' when the theme registers HTML5 gallery support.
     *     @type string       $captiontag HTML tag to use for each image's caption.
     *                                    Default 'dd', or 'figcaption' when the theme registers HTML5 gallery support.
     *     @type int          $columns    Number of columns of images to display. Default 3.
     *     @type string|int[] $size       Size of the images to display. Accepts any registered image size name, or an array
     *                                    of width and height values in pixels (in that order). Default 'thumbnail'.
     *     @type string       $ids        A comma-separated list of IDs of attachments to display. Default empty.
     *     @type string       $include    A comma-separated list of IDs of attachments to include. Default empty.
     *     @type string       $exclude    A comma-separated list of IDs of attachments to exclude. Default empty.
     *     @type string       $link       What to link each image to. Default empty (links to the attachment page).
     *                                    Accepts 'file', 'none'.
     * }
     * @return string HTML content to display gallery.
     */
    function gallery_shortcode( $attr ) {
    	$post = get_post();
    
    	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'];
    	}
    
    	/**
    	 * Filters the default gallery shortcode output.
    	 *
    	 * If the filtered output isn't empty, it will be used instead of generating
    	 * the default gallery template.
    	 *
    	 * @since 2.5.0
    	 * @since 4.2.0 The <code>$instance</code> parameter was added.
    	 *
    	 * @see gallery_shortcode()
    	 *
    	 * @param string $output   The gallery output. Default empty.
    	 * @param array  $attr     Attributes of the gallery shortcode.
    	 * @param int    $instance Unique numeric ID of this gallery shortcode instance.
    	 */
    	$output = apply_filters( 'post_gallery', '', $attr, $instance );
    
    	if ( ! empty( $output ) ) {
    		return $output;
    	}
    
    	$html5 = current_theme_supports( 'html5', 'gallery' );
    	$atts  = shortcode_atts(
    		array(
    			'order'      => 'ASC',
    			'orderby'    => 'menu_order ID',
    			'id'         => $post ? $post->ID : 0,
    			'itemtag'    => $html5 ? 'figure' : 'dl',
    			'icontag'    => $html5 ? 'div' : 'dt',
    			'captiontag' => $html5 ? 'figcaption' : 'dd',
    			'columns'    => 3,
    			'size'       => 'thumbnail',
    			'include'    => '',
    			'exclude'    => '',
    			'link'       => '',
    		),
    		$attr,
    		'gallery'
    	);
    
    	$id = (int) $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 '';
    	}
    
    	if ( is_feed() ) {
    		$output = "\n";
    		foreach ( $attachments as $att_id => $attachment ) {
    			if ( ! empty( $atts['link'] ) ) {
    				if ( 'none' === $atts['link'] ) {
    					$output .= wp_get_attachment_image( $att_id, $atts['size'], false, $attr );
    				} else {
    					$output .= wp_get_attachment_link( $att_id, $atts['size'], false );
    				}
    			} else {
    				$output .= wp_get_attachment_link( $att_id, $atts['size'], true );
    			}
    			$output .= "\n";
    		}
    		return $output;
    	}
    
    	$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 = 'dl';
    	}
    	if ( ! isset( $valid_tags[ $captiontag ] ) ) {
    		$captiontag = 'dd';
    	}
    	if ( ! isset( $valid_tags[ $icontag ] ) ) {
    		$icontag = 'dt';
    	}
    
    	$columns   = (int) $atts['columns'];
    	$itemwidth = $columns > 0 ? floor( 100 / $columns ) : 100;
    	$float     = is_rtl() ? 'right' : 'left';
    
    	$selector = "gallery-{$instance}";
    
    	$gallery_style = '';
    
    	/**
    	 * Filters whether to print default gallery styles.
    	 *
    	 * @since 3.1.0
    	 *
    	 * @param bool $print Whether to print default gallery styles.
    	 *                    Defaults to false if the theme supports HTML5 galleries.
    	 *                    Otherwise, defaults to true.
    	 */
    	if ( apply_filters( 'use_default_gallery_style', ! $html5 ) ) {
    		$type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    
    		$gallery_style = "
    		<style{$type_attr}>
    			#{$selector} {
    				margin: auto;
    			}
    			#{$selector} .gallery-item {
    				float: {$float};
    				margin-top: 10px;
    				text-align: center;
    				width: {$itemwidth}%;
    			}
    			#{$selector} img {
    				border: 2px solid #cfcfcf;
    			}
    			#{$selector} .gallery-caption {
    				margin-left: 0;
    			}
    			/* see gallery_shortcode() in wp-includes/media.php */
    		</style>\n\t\t";
    	}
    
    	$size_class  = sanitize_html_class( is_array( $atts['size'] ) ? implode( 'x', $atts['size'] ) : $atts['size'] );
    	$gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
    
    	/**
    	 * Filters the default gallery shortcode CSS styles.
    	 *
    	 * @since 2.5.0
    	 *
    	 * @param string $gallery_style Default CSS styles and opening HTML div container
    	 *                              for the gallery shortcode output.
    	 */
    	$output = apply_filters( 'gallery_style', $gallery_style . $gallery_div );
    
    	$i = 0;
    
    	foreach ( $attachments as $id => $attachment ) {
    
    		$attr = ( trim( $attachment->post_excerpt ) ) ? array( 'aria-describedby' => "$selector-$id" ) : '';
    
    		if ( ! empty( $atts['link'] ) && 'file' === $atts['link'] ) {
    			$image_output = wp_get_attachment_link( $id, $atts['size'], false, false, false, $attr );
    		} elseif ( ! empty( $atts['link'] ) && 'none' === $atts['link'] ) {
    			$image_output = wp_get_attachment_image( $id, $atts['size'], false, $attr );
    		} else {
    			$image_output = wp_get_attachment_link( $id, $atts['size'], true, false, false, $attr );
    		}
    
    		$image_meta = wp_get_attachment_metadata( $id );
    
    		$orientation = '';
    
    		if ( isset( $image_meta['height'], $image_meta['width'] ) ) {
    			$orientation = ( $image_meta['height'] > $image_meta['width'] ) ? 'portrait' : 'landscape';
    		}
    
    		$output .= "<{$itemtag} class='gallery-item'>";
    		$output .= "
    			<{$icontag} class='gallery-icon {$orientation}'>
    				$image_output
    			</{$icontag}>";
    
    		if ( $captiontag && trim( $attachment->post_excerpt ) ) {
    			$output .= "
    				<{$captiontag} class='wp-caption-text gallery-caption' id='$selector-$id'>
    				" . wptexturize( $attachment->post_excerpt ) . "
    				</{$captiontag}>";
    		}
    
    		$output .= "</{$itemtag}>";
    
    		if ( ! $html5 && $columns > 0 && 0 === ++$i % $columns ) {
    			$output .= '<br style="clear: both" />';
    		}
    	}
    
    	if ( ! $html5 && $columns > 0 && 0 !== $i % $columns ) {
    		$output .= "
    			<br style='clear: both' />";
    	}
    
    	$output .= "
    		</div>\n";
    
    	return $output;
    }
Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Contributor Savvas

    (@savvasha)

    Hi there @ccballero ,

    Please try first to switch to a default theme like Rookie or TwentyTwenty. If the issue is still there, give more info so as to be able to reproduce this issue. Currently I cannot ??

    Thanks,
    Savvas

    Thread Starter ccaballero

    (@ccballero)

    Hi! Ok, I had tried it with a different theme I had installed that didn’t work, but now I have installed Rookie and it looks good with that one, and also with the 2021 theme. So it must just be some conflict the themes I was using.

    I think I might just change to the Rookie theme (I can’t remember why I didn’t choose that one to begin with when I created the site a few years ago). But just so you know, the theme I was using that it doesn’t work on is called Sporty (I can’t remember what the other one was called and I deleted it).

    But if you have any other suggestions please let me know!

    Thanks!

    Roch

    (@rochesterj)

    Hi ccballero!

    Thanks for your reply.

    It’s with checking with the Sporty team if they have any updates. This is an issue with HTML5 support. If they don’t have it, this code appears. But if they do, they just need to declare HTML5 support.

    Thanks!

    Hi there, I see there is still this issue. I just updated my Sporstpress Plugin and can’t show the player’s gallery without this code above..

    I wonder if there is any update about this issue..
    Using Divi and Sportspress

    Thanks in advance and Peace for all..

    • This reply was modified 2 years, 9 months ago by remotepress.
    Roch

    (@rochesterj)

    Hi there!

    Thanks for your reply.

    This is a theme-related issue. You can confirm this by briefly switching to. a default theme such as Rookie or Twenty Twenty.

    Thanks!

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘plugin code appearing above player gallery’ is closed to new replies.