私は長い間優れた Flickr Gallery プラグインを使用していましたが、サイトをWP3.5とTwenty 12テーマにアップグレードしている間にoEmbedsに出会いました。そしてFlickrがネイティブにサポートされていることに注意してください。
私は簡単なテストを行い、そして確かにURLをFlickrの画像ページに配置するだけで投稿に画像が作成されます - しかしそれは幅320ピクセルという小さなものです。コンテンツスペースの幅が約625ピクセルのように見える場合は、500ピクセルの画像を返す方がはるかに良いでしょう。
WP3.5管理インターフェースには表示されていない、現在表示されている最大幅設定に関する言及を見つけました。私がネイティブ機能への切り替えを検討していた唯一の理由は、カスタマイズを削除することでした(私が持っているプラグインは使いやすいです)。この幅を設定するためだけに子テーマを作成する必要がありますか?それとも私は何かが足りないのですか?
任意のヒントは大歓迎です。
テーマとは関係ありません。
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
私が使っていたプラグインがWordpress 3.5で失敗したことを発見し、最小限の手間で回避策を評価しなければならなくなりました。これがうまくいったことです。
次のものをfunctions.phpに追加して、Twenty Elevenの私の既存の子供のテーマを変更しました(私はまだこのサイトを12に変更していません)
if ( ! isset( $content_width ) ) $content_width = 640;
これはFlickrが私の現在のテーマに合った640ピクセル幅の画像を返すようにしました。幅を639に設定すると、320ピクセル幅の画像が再び返されるので、正確な動作を理解するための作業はまだ多くあります。二十二十一の場合、デフォルトの幅は625ですので、私はまだ500ピクセル幅の画像が返される方法を把握する必要があります。