web-dev-qa-db-ja.com

メディアギャラリー - リンクなしでフルサイズの画像を挿入する

組み込みのWPメディアギャラリーを使用したいです。単純に横一列に画像を追加しようとしています。元のサイズの画像とリンクのない画像が欲しいのですが。 wp-admin/includes/media.phpにコードを追加/編集しようとしていますが、取得できません;/size = "full"とcolumns = "0"を使用する必要があることを知っていますが、追加方法デフォルトとしてショートコードでこれ?そして、私はどのように画像の下のリンクを取り除くのか分からないのですか?私は良いファイルを探していますか?いいえ - 正しい方向に向けてください。

2
smogg

UPDATE

私は link="none"のショートコードに[gallery] support を追加するためのコアパッチを提出したところです。

元の答え

やりたいことをするためにcoreをハックする必要はありません。 適切な[gallery]ショートコードパラメータ を使用してください。

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

デフォルトを変更したい場合は、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 );

リンクを削除する唯一の方法は、メディアライブラリの画像リンクフィールドをクリアすることです。または、 いくつかの関連するコードを置き換えることができます

編集

私はギャラリーの出力をフィルタリングすることに慣れていないので、ここで多少推測しています。両方の変数をコールバックに渡すこと、両方の変数に対応するようにadd_filter()呼び出しを修正すること、そして$outputではなく$attrを返すことを含む、私は2、3の修正を行いました。

EDIT 2

さて、それで、現在、ショートコード属性を無効にする唯一の方法は全体のwalkerを書き直すことであるように見えます。詳細については このTracチケット を参照してください。

だから、基本的には、これ:

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

いいえ

  1. コアファイルをハッキングしないでください。
  2. フルサイズの画像はデフォルトでオプションです、あなたは設定 - >メディアの下でそれを変更することができます
  3. リンクを削除するには、「リンクURL」というフィールドを削除するだけです。
1
Wyck

写真を挿入して画像をクリックし、写真の上に表示されている写真(画像の編集)アイコンをクリックしてから、[写真の編集]ボックスが開いたら、下にスクロールして[写真のリンク]オプションの下の[なし]をクリックします。

お役に立てれば。

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

Gallery shortcode を使用してください。

link
あなたはそれを "ファイル"に設定することができますので、各画像は画像ファイルにリンクします。デフォルト値は添付ファイルのパーマリンクにリンクしています。

include
カンマ区切りの添付ファイルID、[gallery include = "23,39,45"]はこれらの添付ファイルの画像のみを表示します。

exclude
カンマ区切りの添付ファイルID、[gallery exclude = "21,32,43"]はこれらの添付ファイルから画像を除外します。包含と除外を同時に使用することはできません。

1
chuck

代替アプローチ: クリーナーギャラリー プラグインを使用してください。

0
Chip Bennett