カスタムフィールド, ショートコード, プラグイン
0

URLからスクリーンショット画像を取得して表示「Browser Shots」プラグイン:その2

前回記事URLからスクリーンショット画像を取得して表示「Browser Shots」プラグインの続きです。

URLからスクリーンショット画像を取得して表示する便利なプラグイン「Browser Shots」を、
◆キャプチャ画像リンク先は新しい別ウィンドウで開きたい!
◆専用のカスタムフィールドにURLを入力すれば固定位置に固定されたサイズのキャプチャ画像リンクが表示されるようにしたい!(空白の場合は何も表示せずな形で)
以上を実現するためにググってみました。

リンク先を別ウィンドウで開くのは、下記サイトに掲載されていました。

Screenshot of piji.daiwa-hotcom.com

「プラグイン」⇒「インストール済みプラグイン」⇒プラグイン一覧が表示されるので、
「Browser Shots」の「編集」へ。

プラグインファイルが3つ表示される。
browser-shots/browser-shots.php
browser-shots/readme.txt
browser-shots/js/browser-shots.js
この
一番上にある、
browser-shots/browser-shots.php
内の54~57行目、

if ( !empty( $image_uri ) ) {
 $image = '<img src="' . $image_uri . '" alt="' . $alt . '" width="' . $width . '" class="alignnone" />';
 return '<a href="' . $url . '">' . $image . '</a>';
}

の56行目を

if ( !empty( $image_uri ) ) {
 $image = '<img src="' . $image_uri . '" alt="' . $alt . '" width="' . $width . '" class="alignnone" />';
 return '<a href="' . $url . '" target="_blank">' . $image . '</a>';
}

のように変更すれば実現できました!
Various Program Blog様、ありがとうございます!)

カスタムフィールドにURLを入力するだけでキャプチャ画像リンクを表示するには?
まずは、
いつもお世話になっております!「Custom Field Template」!!
ワタクシ的には大定番となるプラグインを利用します。

Custom Field Templateのオプションに、

[参考URL]
type = text
size = 40

※[ ]は全角になっています、利用する際は半角に直して記述
みたいな感じのテンプレートを作成。

さらに、
同じオプション内下にある
[cft]and[cftsearch]Shortcode Format

FORMAT #1
あたりを利用して

[browser-shot url="<?php echo post_custom("参考URL"); ?>" width="200"]

と、記述してフォーマットを作成。
( width=”200″、ここでサイズが決定されます)

そして、
テーマファイル、single.phpなどのキャプチャ画像リンクを挿入したい場所に下記を記述。

<?php echo do_shortcode( '[cft format=1]' ); ?>

※上記はFORMAT #1で作成した場合

これで、
プラグイン「Custom Field Template」によって投稿画面に固定された、カスタムフィールド「参考URL」にキャプチャ画像をリンク付きで表示したいサイトのURLを入力するだけで表示が可能に!

ついでに、
「参考サイト様!」みたいなタイトルを上につけたりしたい!
カスタムフィールド「参考URL」が空白だった場合は何も表示しないようにすることが必要なので、

<?php if(get_post_meta($post->ID,'参考URL',true)): ?>
<p>参考サイト様!</p>
<?php echo do_shortcode( '[cft format=1]' ); ?>
<?php endif; ?>

と、してみました!

関連記事
URLからスクリーンショット画像を取得して表示「Browser Shots」プラグイン
Ktai Styleプラグインで携帯対応
カスタムフィールドのカレンダーから日付入力して曜日まで表示する