web-dev-qa-db-fra.com

Galerie multimédia - insertion d'images en taille réelle sans lien

Je souhaite utiliser la médiathèque intégrée WP. J'essaie simplement d'ajouter des images en une seule ligne horizontale. Je veux des images avec la taille originale et sans aucun lien. J'essaye d'ajouter/éditer du code dans wp-admin/includes/media.php mais je ne peux pas l'obtenir;/​​je sais que je dois utiliser size = "full" et columns = "0" mais comment l'ajouter ceci avec shortcode par défaut? Et je n'ai aucune idée de comment se débarrasser des liens sous des images? Est-ce que je cherche dans le bon dossier? Si non - pointez-moi dans la bonne direction s'il vous plaît;)

2
smogg

UPDATE

Je viens de soumettre un correctif principal pour ajouter le support link="none" au shortcode [gallery].

REPONSE ORIGINALE

Vous n'avez pas besoin de pirater le noyau pour faire ce que vous voulez faire; utilisez simplement les paramètres de shortcode [gallery] appropriés , par exemple:

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

Si vous souhaitez modifier les valeurs par défaut, utilisez le filtre post_gallery:

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

Le seul moyen de supprimer le lien consiste à vider le champ du lien d’image dans la médiathèque, ou vous pouvez procéder à un remplacement du code impliqué .

EDIT

Je suis un peu en train de deviner, car je ne suis pas parfaitement familiarisé avec le filtrage de la sortie de la galerie. J'ai apporté quelques modifications, notamment en transmettant les deux variables au rappel, en corrigeant l'appel add_filter() pour prendre en charge les deux variables et en renvoyant $output plutôt que $attr.

EDIT 2

Bon, on dirait qu’à l’heure actuelle, le seul moyen de remplacer les attributs de code court est de réécrire le programme complet. Voir ce ticket Trac pour plus de détails.

Donc, fondamentalement, ceci:

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 . "\n\t\t" . $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 );
1
Chip Bennett

Non

  1. Ne piratez pas les fichiers core.
  2. L’image en taille réelle est une option par défaut, vous pouvez la changer sous Paramètres -> Média
  3. Pour supprimer le lien, supprimez simplement le champ "URL du lien".
1
Wyck

Insérez votre photo, cliquez sur l'image, cliquez sur l'icône de la photo (Modifier l'image) qui apparaît en haut de votre photo, puis lorsque la boîte de dialogue MODIFIER PHOTO s'ouvre, faites défiler la liste et cliquez sur AUCUN, sous l'option de lien de la photo.

J'espère que cela t'aides.

1
Nitty
[gallery link="file" order="DESC" columns="1" size="full"]

Utilisez Gallery shortcode .

link
vous pouvez le régler sur "fichier" pour que chaque image soit liée au fichier image. La valeur par défaut est liée au lien permanent de la pièce jointe.

include
ID de pièce jointe séparés par des virgules, [gallery include = "23,39,45"] n'afficheront que les images de ces pièces jointes.

exclude
ID de pièces jointes séparées par des virgules, [gallery exclude = "21,32,43"] exclut les images de ces pièces jointes. Veuillez noter que l'inclusion et l'exclusion ne peuvent pas être utilisées ensemble.

1
chuck

Autre approche: utilisez le Cleaner Gallery Plugin.

0
Chip Bennett