it-swarm.com.de

Mediengalerie - Einfügen von Bildern in voller Größe ohne Link

Ich möchte die integrierte WP Mediengalerie verwenden. Ich versuche einfach Bilder in einer horizontalen Linie hinzuzufügen. Ich möchte Bilder in Originalgröße und ohne Link. Ich versuche, Code zu wp-admin/includes/media.php hinzuzufügen/zu bearbeiten, aber ich kann ihn nicht bekommen;/Ich weiß, dass ich size = "full" und columns = "0" verwenden muss, aber wie ich ihn hinzufüge dies mit Shortcode als Standard? Und ich habe keine Ahnung, wie man Links unter Bildern loswird? Sehe ich gut aus? Wenn nein - zeige mich bitte in die richtige Richtung;)

2
smogg

UPDATE

Ich habe gerade ein Kern-Patch zum Hinzufügen von link="none"-Unterstützung zum [gallery]-Shortcode gesendet.

URSPRÜNGLICHE ANTWORT

Sie müssen Core nicht hacken, um das zu tun, was Sie tun möchten. Verwenden Sie einfach die entsprechenden [gallery] shortcode-Parameter , z.

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

Wenn Sie die Standardeinstellungen ändern möchten, verwenden Sie den Filter 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 );

Die einzige Möglichkeit, den Link zu entfernen, besteht darin, das Feld für den Bildlink in der Medienbibliothek zu löschen. Sie können auch Ersetzen von Code ausführen.

EDIT

Ich rate hier etwas, da ich mit dem Filtern der Galerieausgabe nicht ganz vertraut bin. Ich habe einige Änderungen vorgenommen, einschließlich der Übergabe beider Variablen an den Rückruf, der Korrektur des Aufrufs add_filter(), um beide Variablen aufzunehmen, und der Rückgabe von $output anstelle von $attr.

EDIT 2

Okay, so wie es aussieht, besteht die einzige Möglichkeit, die Shortcode-Attribute zu überschreiben, darin, den gesamten Walker neu zu schreiben. Einzelheiten finden Sie unter this Trac Ticket .

Also im Grunde das:

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

Nein

  1. Hacken Sie keine Core-Dateien.
  2. Das Bild in voller Größe ist standardmäßig eine Option. Sie können es unter Einstellungen -> Medien ändern
  3. Um den Link zu entfernen, löschen Sie einfach das Feld "Link URL".
1
Wyck

Fügen Sie Ihr Foto ein, klicken Sie auf das Bild, klicken Sie auf das Foto-Symbol (Bild bearbeiten), das oben auf Ihrem Foto angezeigt wird, und scrollen Sie nach unten, wenn das Feld FOTO BEARBEITEN geöffnet wird, und klicken Sie unter der Option Foto verknüpfen auf KEINE.

Hoffe das hilft.

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

Verwenden Sie Gallery Shortcode .

link
Sie können es auf "Datei" setzen, damit jedes Bild mit der Bilddatei verknüpft wird. Der Standardwert ist mit dem Permalink des Anhangs verknüpft.

include
IDs für durch Kommas getrennte Anhänge, [gallery include = "23,39,45"] zeigen nur die Bilder aus diesen Anhängen an.

ausschließen
durch Kommas getrennte Anhangs-IDs, [gallery exclude = "21,32,43"] schließen die Bilder aus diesen Anhängen aus. Bitte beachten Sie, dass include und exclude nicht zusammen verwendet werden können.

1
chuck

Alternative Vorgehensweise: Verwenden Sie das Cleaner Gallery Plugin.

0
Chip Bennett