Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I quite like the default WordPress Gallery, but i dont like how it plonks the images as thumbnails, with a link to the larger image.

Is there anyway to make it display the images not in a thumbnail link, just as either the full size image or one chosen from the media uploader?

Also in a an li list?

So simply looks like the following..

<ul>
  <li><img src="wp-uploads/image.jpg" alt="image" /></li>
  <li><img src="wp-uploads/image.jpg" alt="image" /></li>
</ul>

Or no chance and tough, thats how the gallery works?

Thanks for any advice :)

share|improve this question

1 Answer 1

up vote 2 down vote accepted

Put this code in your functions.php and check.

function custom_gallery( $output, $attr ){
    global $post, $wp_locale;

    static $instance = 0;
$instance++;

// 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'    => 'li',
    'icontag'    => '',
    'captiontag' => '',
    'columns'    => 3,
    'size'       => 'full',
    'include'    => '',
    'exclude'    => ''
), $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_div = '';
$size_class = sanitize_html_class( $size );
$gallery_div = "<ul id=\"$selector\" class=\"gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}\">";
$output = apply_filters( 'gallery_style', $gallery_div );

$i = 0;
foreach ( $attachments as $id => $attachment ) {
    $image = wp_get_attachment_image( $id, $size );

    $output .= "<{$itemtag} class=\"gallery-item\">";
    $output .= $image;
    if ( $captiontag && trim($attachment->post_excerpt) ) {
        $output .= "
            <{$captiontag} class=\"wp-caption-text gallery-caption\">
            " . wptexturize($attachment->post_excerpt) . "
            </{$captiontag}>";
    }
    $output .= "</{$itemtag}>";
}

$output .= "
    </ul>\n";

return $output;
}
add_filter('post_gallery', 'custom_gallery', 11, 2);

This will output the uploaded image as it is instead of the thumbnail in a list.

share|improve this answer
    
Wow thats awesome thanks! It still links to an image though, anyway to strip the link and put it all in a <ul> <li> list? Thanks for that so far though, brilliant! –  Jezthomp Dec 2 '11 at 11:32
    
Ok try the above edited code and let me know if it works for you. –  Joshua Abenazer Dec 2 '11 at 16:46
    
Thanks Josh, almost perfect.. Thats put it in a list without the link but its back to the 150 x150 thumbnail size? So a combination of the two would be perfect. The list is also <li class="gallery-item"> rather than class='gallery-item' Thank you again.. :) –  Jezthomp Dec 3 '11 at 9:50
    
Check the latest answer and let me know... –  Joshua Abenazer Dec 3 '11 at 10:22
    
Perfect,thank you so much :) –  Jezthomp Dec 3 '11 at 22:52

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.