WordPressはoEmbedというのに対応していて、YoutubeやFlickrのURLを記事に貼り付けるだけで、メディアを埋め込むことができる。
これはこれで便利なのだが、先日FlickrのURLを貼りつけた際に、画像は埋め込まれる一方で、大元のページ上にリンクが貼られないことが気になった。
(ちなみに、A要素で囲んだときには、メディアが埋め込まれない。。。)
これでは、人様の写真を紹介するつもりでも、結果的にパクったことになってしまう。
(リンクをはってもパクってることには変わりないかもしれないけど。)
Flickrにリンクをはるフィルタープラグイン
以下のソースをテーマファイルのfunctions.php内にコピペするか、この記事を参考にして簡単プラグインを作成して、その中にコピペする。
add_filter('oembed_result', 'filter_flickr', '', 3);
function filter_flickr($html, $url, $args){
if (preg_match('/http:\/\/(www\.)?flickr\.com\/.*/', $url)) {
return "<a href=\"{$url}\">{$html}</a>";
} else {
return $html;
}
}
上記を上手く適用できると画像にリンクが貼られる。
ちなみに正規表現をimg要素にマッチするようにすれば、その他の画像共有サイトにも対応できるような気もする。
ちなみに
oEmbedの結果はキャッシュされるらしく、保存済みの投稿には適用されない。
そんなときは、保存しなおすと適用される。
実は、これに気がつかなくて、すごーくハマった。