如何增加从Flickr或Embedded返回的图像大小

时间:2012-12-30 作者:zkarj

我一直在使用Flickr Gallery 插件一段时间,但在将站点升级到WP3时。5和第212个主题,我偶然发现了oEmbed,并注意到Flickr是本机支持的。

我做了一个快速的测试,可以肯定的是,只要将URL放在Flickr图像页面上,就会在帖子中生成一个图像,但它只有320像素宽。如果内容空间看起来大约625像素宽,那么返回500像素的图像会更好。

我发现WP3中没有提到最大宽度设置,而现在似乎没有提到。5管理界面。我考虑切换到本机功能的唯一原因是取消定制(我的插件非常容易使用)。我是否必须创建子主题才能设置此宽度?还是我遗漏了什么?

感谢您的任何提示。

2 个回复
SO网友:brasofilo

这与主题无关。

Flickr oEmbed正在返回一个名称以结尾的图像文件_n.jpg, 实际上,它的宽度为320px。更大的版本以_b.jpg

我们需要使用的过滤器挂钩是embed_oembed_html.

以下操作返回html的结果以增加图像大小,请检查注释:

add_filter( \'embed_oembed_html\', \'wpse_77745_flickr\', 10, 4 );

function wpse_77745_flickr( $html, $url, $attr, $post_ID )
{
    // Check if oEmbedding from Flicker
    $provider = parse_url( $url ); 
    if( \'www.flickr.com\' != $provider[\'host\'] )
        return $html;

    // Get the image attributes from $html
    // http://stackoverflow.com/q/138313/1287812
    preg_match_all( \'/(alt|title|src)=("[^"]*")/i\', $html, $img );

    // Change small for big
    $src = str_replace( \'_n.jpg\', \'_b.jpg\', $img[2][0] );

    // Build output
    // SRC and ALT vars already contain quotes
    $big_flick = "<a href=\'{$url}\'><img src={$src} alt={$img[2][4]} width=\'{$attr["width"]}\' height=\'{$attr["width"]}\'></a>";

    return $big_flick;
}
作为参考,参数值:

$html => \'<a href="http://www.flickr.com/photos/maheshguild/8299345724/"><img src="https://i.stack.imgur.com/f31ow.jpg" alt="Flamingos !!!" width="320" height="213" /></a>\'
$url  => \'http://www.flickr.com/photos/maheshguild/8299345724/\'
$attr => array(
    [\'width\'] => 625
    [\'height\'] => 938
    )
$post_ID => 143
使用FireHP(libraryadd-on ).

SO网友:zkarj

我发现我正在使用的插件在Wordpress 3.5下失败了,这迫使我评估一个解决方案,尽量不大惊小怪。以下是有效的方法。

我在功能中添加了以下内容,从而修改了我现有的儿童主题“211”(我还没有将上述站点更改为“2112”)。php

if ( ! isset( $content_width ) ) $content_width = 640;

这使得Flickr返回640个像素宽的图像,这符合我当前的主题。请注意,当我将宽度设置为639时,它再次返回320像素宽的图像,因此仍有更多的工作要弄清楚确切的行为。对于212,默认宽度是625,因此我仍然需要弄清楚如何返回500像素宽的图像。

结束

相关推荐

是否可以从oEmbed视频嵌入中删除高度和宽度属性

我想知道是否可以使用内置在WP核心的oEmbed来显示视频嵌入,但以某种方式删除输出中的高度和宽度属性?我知道这些功能存在于媒体中。php,但我不想弄乱核心。我提出这个问题的原因是,我们正在为客户端开发一个主题,该主题使用流体网格框架和任何具有指定高度和宽度属性的图像/视频,这意味着它们不会在较小的视口中随网格缩放,或者有什么方法可以做到这一点?任何帮助都将不胜感激谢谢