Media gallery – inserting full size images without link

I want to use built-in WP media gallery. I’m trying to simply add images in one – horizontal line. I want images with original size and without any link. I’m trying to add/edit some code into wp-admin/includes/media.php but I can’t get it ;/ I know I have to use size=”full” and columns=”0″ but how to add this with shortcode as default? And I have no idea how to get rid of links under images? Am I looking in good file? If no – point me to right direction please 😉

Related posts

Leave a Reply

5 comments

  1. UPDATE

    I’ve just submitted a core patch to add link="none" support to the [gallery] shortcode.

    ORIGINAL ANSWER

    You don’t need to hack core to do what you want to do; just use the appropriate [gallery] shortcode parameters, e.g.:

    [gallery columns="0" size="full"]
    

    If you want to change the defaults, then use the post_gallery filter:

    function mytheme_gallery_shortcode_defaults( $output, $attr ) {
        global $post;
        $attr = array(
            'columns' => '0',
            'size' => 'full'
        );
        return $output;
    }
    add_filter( 'post_gallery', 'mytheme_gallery_shortcode_defaults', 10, 2 );
    

    The only way to remove the link is to clear the image link field in the Media Library, or you can do some involved code replacement.

    EDIT

    I’m somewhat guessing here, as I’m not fully familiar with filtering the gallery output. I’ve made a couple of modifications, including passing both variables to the callback, correcting the add_filter() call to accommodate both variables, and returning $output rather than $attr.

    EDIT 2

    Okay, so it looks like, currently, the only way to override th shortcode attributes is to rewrite the entire walker. See this Trac Ticket for details.

    So, basically, this:

    function mytheme_gallery_shortcode( $output, $attr ) {
        global $post, $wp_locale;
    
        static $instance = 0;
        $instance++;
    
        // Allow plugins/themes to override the default gallery template.
        $output = apply_filters('post_gallery', '', $attr);
        if ( $output != '' )
            return $output;
    
        // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
        if ( isset( $attr['orderby'] ) ) {
            $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
            if ( !$attr['orderby'] )
                unset( $attr['orderby'] );
        }
    
        extract(shortcode_atts(array(
            'order'      => 'ASC',
            'orderby'    => 'menu_order ID',
            'id'         => $post->ID,
            'itemtag'    => 'dl',
            'icontag'    => 'dt',
            'captiontag' => 'dd',
            'columns'    => 0,
            'size'       => 'full',
            'include'    => '',
            'exclude'    => '',
                    'link'       => 'none'
        ), $attr));
    
        $id = intval($id);
        if ( 'RAND' == $order )
            $orderby = 'none';
    
        if ( !empty($include) ) {
            $include = preg_replace( '/[^0-9,]+/', '', $include );
            $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
    
            $attachments = array();
            foreach ( $_attachments as $key => $val ) {
                $attachments[$val->ID] = $_attachments[$key];
            }
        } elseif ( !empty($exclude) ) {
            $exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
            $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
        } else {
            $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
        }
    
        if ( empty($attachments) )
            return '';
    
        if ( is_feed() ) {
            $output = "n";
            foreach ( $attachments as $att_id => $attachment )
                $output .= wp_get_attachment_link($att_id, $size, true) . "n";
            return $output;
        }
    
        $itemtag = tag_escape($itemtag);
        $captiontag = tag_escape($captiontag);
        $columns = intval($columns);
        $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
        $float = is_rtl() ? 'right' : 'left';
    
        $selector = "gallery-{$instance}";
    
        $gallery_style = $gallery_div = '';
        if ( apply_filters( 'use_default_gallery_style', true ) )
            $gallery_style = "
            <style type='text/css'>
                #{$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;
                }
            </style>
            <!-- see gallery_shortcode() in wp-includes/media.php -->";
        $size_class = sanitize_html_class( $size );
        $gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
        $output = apply_filters( 'gallery_style', $gallery_style . "ntt" . $gallery_div );
    
        $i = 0;
        foreach ( $attachments as $id => $attachment ) {
                    $image = wp_get_attachment_image( $id, $size, false );
            $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
                    $image_output = ( 'none' == $attr['link'] ? $image : $link );
    
            $output .= "<{$itemtag} class='gallery-item'>";
            $output .= "
                <{$icontag} class='gallery-icon'>
                    $image_output
                </{$icontag}>";
            if ( $captiontag && trim($attachment->post_excerpt) ) {
                $output .= "
                    <{$captiontag} class='wp-caption-text gallery-caption'>
                    " . wptexturize($attachment->post_excerpt) . "
                    </{$captiontag}>";
            }
            $output .= "</{$itemtag}>";
            if ( $columns > 0 && ++$i % $columns == 0 )
                $output .= '<br style="clear: both" />';
        }
    
        $output .= "
                <br style='clear: both;' />
            </div>n";
    
        return $output;
    }
    add_filter( 'post_gallery', 'mytheme_gallery_shortcode', 10, 2 );
    
  2. No

    1. Do not hack core files.
    2. The full size image is an option by default, you can change it under Settings–>Media
    3. To remove the link just delete the field that says “Link URL”.
  3. [gallery link="file" order="DESC" columns="1" size="full"]
    

    Use Gallery shortcode.

    link
    you can set it to “file” so each image will link to the image file. The default value links to the attachment’s permalink.

    include
    comma separated attachment IDs, [gallery include="23,39,45"] will show only the images from these attachments.

    exclude
    comma separated attachment IDs, [gallery exclude="21,32,43"] excludes the images from these attachments. Please note that include and exclude cannot be used together.

  4. Insert your photo, click on the image, click on the photo (Edit image) icon that appears on top of your photo, then when the EDIT PHOTO box opens, scroll down and click NONE under the link photo option.

    Hope this helps.