媒体集-插入无链接的全尺寸图像

时间:2011-07-18 作者:smogg

我想使用内置的WP媒体库。我试图简单地在一条水平线上添加图像。我想与原始大小的图像,没有任何链接。我正在尝试向wp admin/includes/media中添加/编辑一些代码。php,但我无法获取;/我知道我必须使用size=“full”和columns=“0”,但如何在默认情况下使用shortcode添加它?我不知道如何去掉图片下的链接?我的档案很好吗?如果没有-请给我指出正确的方向;)

5 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

UPDATE

我刚刚提交a core patch to add link="none" support[gallery] 短代码。

ORIGINAL ANSWER

你不需要破解core来做你想做的事;仅使用the appropriate [gallery] shortcode parameters, e、 g.:

[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 );
删除链接的唯一方法是清除媒体库中的图像链接字段,或者您可以do some involved code replacement.

EDIT

我在这里有些猜测,因为我不太熟悉过滤库输出。我做了一些修改,包括将这两个变量都传递给回调,更正add_filter() 调用以容纳这两个变量,并返回$output 而不是$attr.

EDIT 2

好的,现在看来,重写th shortcode属性的唯一方法是重写整个walker。看见this Trac Ticket 有关详细信息。

因此,基本上,这:

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

SO网友:Wyck

不要破解核心文件“媒体”下更改它以删除链接,只需删除显示“链接URL”的字段即可

SO网友:chuck

[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”]从这些附件中排除图像。请注意,include和exclude不能一起使用。

SO网友:Nitty

插入照片,单击图像,单击照片顶部显示的照片(编辑图像)图标,然后当编辑照片框打开时,向下滚动并单击链接照片选项下的无。

希望这有帮助。

SO网友:Chip Bennett

替代方法:使用Cleaner Gallery 插件。

结束

相关推荐

Resizing images failing

我最近添加了三种新尺寸的post\\u缩略图的主题支持,我想调整之前上传的所有旧图像的大小。我自己写的剧本如下:function resizeImages() { require ( ABSPATH . \'wp-admin/includes/image.php\' ); global $wpdb; $images = $wpdb->get_results( \"SELECT ID FROM $wpdb->posts