web-dev-qa-db-fra.com

Galerie par défaut Modificateur/Modèle modifiable?

J'aime assez la galerie par défaut de WordPress, mais je n'aime pas la façon dont elle affiche les images sous forme de vignettes, avec un lien vers une image plus grande.

Est-il possible de faire en sorte que les images ne s'affichent pas dans un lien miniature, tout comme une image en taille réelle ou une image choisie dans le programme de téléchargement multimédia?

Aussi dans une liste de li?

Si simplement ressemble à ce qui suit ..

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

Ou aucune chance et dur, c'est comment la galerie fonctionne?

Merci pour tout conseil :)

1
Jezthomp

Mettez ce code dans votre functions.php et vérifiez.

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);

Cela affichera l'image téléchargée telle quelle à la place de la vignette dans une liste.

2
Joshua Abenazer