WordPress APIでスクリーンショットを表示するショートコード

wpimage

リンク先のスクリーンショットを表示したい時に、プラグインとか使わない方法。
テーマのfunction.phpに、以下を追加します。

<?php
function get_wp_screenshot($attr) {
    extract(shortcode_atts(array(
        // デフォルト設定
        'url' => '',
        'alt'  => '',
        'class' => '', // imgタグに付加するclass名
        'width' => 0, // 画像の幅(0の場合はwidthタグを出力しない)
        'link' => 1 // 0:リンクしない 1:リンクする
    ), $attr));
    if ($url == '') {
        return;
    }
    $image = 'http://s.wordpress.com/mshots/v1/' . urlencode(clean_url($url));
    if ($width > 0) {
        $height = floor($width/4*3);
        $image .= '?w=' . $width;
        $image_wh = ' width="' . $width . '" height="' . $height . '"';
    }
    if ($class != '') {
        $image_wh .= ' class="' . $class . '"';
    }
    $image = '<img src="' . $image . '" alt="' . $alt . '"' . $image_wh . '>';
    if ($link == 1) {
        $image = '<a href="' . $url . '" target="_blank">' . $image . '</a>';
    }
    return $image;
}
add_shortcode('wpshot','get_wp_screenshot');
?>

投稿やページに入れるショートコードはこれです。

wpshot url="ここにリンク先URL"

(※ショートコードは前後を[ ]で囲います)
実際の表示サンプルです。上の画像の幅を300にした例です。

コメントを残す

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>