Jetpack Photonからのアイキャッチ画像URLを取得

仕事でアイキャッチ画像をPhotonを介して出さなければならなくなったため作成。

通常、アイキャッチ画像を出す場合、get_the_post_thumbnail(get_the_ID())(タグ出し)やwp_get_attachment_url(get_post_thumbnail_id())(画像URL取得)で行うところだが、要件として出されたものが、縦横比不定の画像の正方形への整形。

 

MTでは同じような機能が標準で搭載されているから、当然Wordpressでも似たような機能はあるものなのだろう・・・と思っていたが・・・ああ、駄目でした。

 

とりあえず、Jetpackを導入してPhotonを設定。

いざテンプレートへ!

lb=ほにゃららのパラメータを追加!!

やたー!!これで解決したよー\(^o^)/

 

 

 

 

・・・しねえよ!!!

 

パラメータ付けただけじゃ動かない。

get_the_post_thumbnail(get_the_ID())やwp_get_attachment_url(get_post_thumbnail_id())は生の画像URLを取ってくるので、いくらパラメータ付けたところで無駄無駄。

「http://i1.wp.com/」を介して一度変換してやる必要がある。

 

そこで以下のコードを作成した。

/*****************************************************************/
/* func名:getThumbnailUrl() */
/* 目的:アイキャッチ画像URL取得 JetpackPhotonに対応可 */
/* 引数:第1引数...画像ID nullで記事に設定されたアイキャッチ */
/* 第2引数...JetpackPhotonの使用有無 trueで使用する */
/* 第3引数...横サイズ JetpackPhotonの使用時 */
/* 第4引数...縦サイズ JetpackPhotonの使用時 */
/* 返値:アイキャッチ画像のフルパス */
/* */
/*****************************************************************/
function getThumbnailUrl($bid = null, $flg = false, $w = 500 , $h = 500){
 $ret = ''; $src = ''; $url = '';
 
 if($bid != null){
  $src = $bid;
 }else{
  $src = get_post_thumbnail_id();
 }
 
 if($flg){
  $src = wp_get_attachment_url($src);
  if($src != ''){
   $src = substr($src, strlen(get_site_url(null, '/')));
   $url = get_site_url(null, '/');
   $url = substr($url, strpos($url, '://') + 3);
   $url = 'http://i1.wp.com/'.$url.$src.'?lb='.$w.','.$h;
  }
  $ret = $url;
 }else{
  $src = wp_get_attachment_url($src);
  $ret = $src;
 }
 
 return $ret;
}

引数は上記に書いてあるとおり。

第1引数で画像IDまたは投稿画像IDを指定。

第2引数のBool値で、Jetpack Photonを介したURLを出力するかを指定。

で、第3・第4引数でサイズ指定。

 

出し方例:

echo getThumbnailUrl(null, true, 360, 360);

とりあえず、上記で無事、Photonを介したURLを取得できました。

(普通にアイキャッチ画像を得る場合にも備えて、一応第1引数でwp_get_attachment_url()を呼び出すようにしているが、一行だけで済むテンプレート関数を独自関数に更に組み込む意味は果たしてあるのかどうか・・・微妙。)

 

 

カテゴリ

この記事のコメント

コメントはないです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です