URLからスクリーンショット画像を取得して表示「Browser Shots」プラグイン
よく見かける他サイトへのリンク方法として、
リンクしたい他サイトを画面キャプチャした画像を表示して、画像クリックでリンク先へ。
外部ファイルを読み込むショートコード
他サーバーに設置している別ドメイン配下にあるファイル、いわゆる外部ファイルを読み込む為のショートコード。
やりたかった事は、
(クライアントごとに投稿ページを作成するとして)
・各投稿ページに「クライアントコード」というカスタムフィールドを作成。
・↑これに各クライアントを識別する文字列を入力しておく。
・他サーバーに、各クライアントコード(文字列)をファイル名(フォルダ名)としたPHPファイルを設置。
・各クライアントごと(各投稿ページごと)に、他サーバー設置された各専用のPHPファイルを呼び出す(インクルード)する。
これを簡単にショートコードとして設定して実現したい!
いろいろ探しまわってたら、ありました!!
かちびと. net様の
任意のファイルを読み込み、その場に実装するWordPressショートコード – かちびと. netより
function file_aid_func( $atts ) { extract( shortcode_atts( array( 'file' => '' ), $atts ) ); if ($file!='') return @file_get_contents('http://aaa.com/inc/' . $file. '/aid.php') ; } add_shortcode( 'file_aid', 'file_aid_func' );
を、functions.phpに追加して、ショートコード[file_aid file=”aid0016″]を投稿フィールド内に記述すれば、
http://aaa.com/inc/aid0016/aid.phpのファイルを読み込むことが出来る!
テンプレート内に記述する場合は、
<?php echo do_shortcode('[file_aid file="n0016"]'); ?>
だが、テンプレートに記述したら各投稿ページごと(各クライアントごと)にはならない。
そこで、
$fileにそのまま「クライアントコード」のカスタムフィールド値が入るようにコード改造してみた。
function file_aid_func() { $file = post_custom("クライアントコード"); return @file_get_contents('http://aaa.com/inc/' . $file. '/aid.php') ; } add_shortcode( 'file_aid', 'file_aid_func' );
↑これをfunctions.phpへ、
そしてテンプレートに、
<?php echo do_shortcode('[file_aid]'); ?>
とすれば、
クライアントn0016(カスタムフィールド「クライアントコード」の値「n0016」)の場合には、http://aaa.com/inc/aid0016/aid.phpを呼び出し、
クライアントn0091(カスタムフィールド「クライアントコード」の値「n0091」)の場合には、http://aaa.com/inc/aid0091/aid.phpを呼び出すことが出来る!
めでたしめでたし….
あれ??
よ~く考えてみたら…下記のようにPHPインクルードすれば同じ結果が得られる!?
<?php $file = post_custom("クライアントコード"); include('http://aaa.com/inc/' . $file. '/aid.php'); ?>
とほほ。涙
アホでスミマセン。
ここにたどり着くまでさんざん苦労したので、自分用のメモに残してみました。
WordPress(ワードプレス)のショートコードを初めて使ってみましたが、使いこなせればかなり便利なようですネ。