この記事は2年以上前に書かれたものです。
情報が古い可能性があります。
情報が古い可能性があります。
photo credit: Peregrino Will Reign via photopin cc
カスタムテンプレートタグを作る方法もあると思いますが、一応こういう方法も可能かと。
検証バージョン
- WordPress 3.5.2
ソースコード
URLのチェックなどは行ってないのであくまで参考程度でお願いします。
functions.php
<?php
// add_action( フックするアクション名, コールバック, 実行優先順位, 引数の数 )
add_action( 'save_post' , 'action_save_post', 99, 2 );
function action_save_post( $post_id, $post ) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
/** 自動保存時は何もしない */
return $post_id;
} elseif ( !empty( $_POST ) ) {
/** 投稿更新時 */
// URLのカスタムフィールドを取得する
$url = get_post_meta( $post_id, 'url', true );
// WordPressのスクリーンショットAPI用のURL生成
$value = "http://s.wordpress.com/mshots/v1/" . trailingslashit( $url ) . "?w=300";
// スクリーンショット用のカスタムフィールドを更新する
update_post_meta( $post_id, 'screen_shot', $value );
}
}
trailingslashit で元のURLの末尾にスラッシュを追加してスクリーンショットAPI用のURL生成しています。
実行例
