私は自分のサイトでたくさんのプラグインを使っているので、もっと多くのプラグインを最小限にするようにしています。
Imageshackでホストされている画像を使用し、それを注目画像として使用できるように使用できるワードプレスフックがあるかどうかと思いました画像を自分のワードプレスサイトに保存していない
それでも可能ですか?これは本当に複雑な要求のように思えます。笑
これを試したことがありますか solution ?いくつかの変更を加えれば、それはあなたの質問にもうまくいくはずです。
WordPressインストールで画像ファイルを保存せずにURLベースの機能画像を使用したいが、それでもテーマ/プラグイン内に実装されたWordPress機能を使用したい場合は、WPのメディアの表現方法を知る必要があります:
ファイルをアップロードすると、WordPressはそのURLを使用して画像やファイルを参照せず、添付ファイルを使用します。添付ファイルは、添付ファイルタイプの投稿であり、投稿IDによって参照されます。たとえば、投稿におすすめの画像を設定すると、選択した画像の投稿IDがその投稿のメタ
_thumbnail_id
に格納されます。
出典: http://www.wptherightway.org/en/post_types/index.html (2016-03-14 01:23 UTC)
結論:URLベースの注目画像はWP環境では予測されていません。
それでも達成したい場合は、3つの簡単なステップがあります。
wp_get_attachment_image_src()
の結果をフィルタして、url文字列を_thumbnail_id
ではなくpost_id
として許可します。
function my_get_attachment_image_src($image, $attachment_id, $size, $icon){
if (empty($attachment_id)) return $image;
if (
(string) intval($attachment_id) != (string) $attachment_id &&
$attachment_id != ''
) {
$image[0]= $attachment_id;
}
return $image;
}
add_filter( 'wp_get_attachment_image_src', 'my_get_attachment_image_src', 10, 4);
URLベースのおすすめ画像を表示および設定するための投稿およびページ用の追加のメタボックスを作成します。
function add_my_meta_box() {
add_meta_box(
'post_thumbnail_url',
__('External URL as featured Image'),
'my_meta_box',
'post',
'side',
'low'
);
add_meta_box(
'page_thumbnail_url',
__('External URL as featured Image'),
'my_meta_box',
'page',
'side',
'low'
);
}
function my_meta_box($post) {
$attachment_url = get_the_post_thumbnail_url($post->ID);
if (
(string) intval($attachment_url) != (string) $attachment_url &&
$attachment_url != ''
) {
echo "<img width='100%' id='my_thumbnail_preview' src='{$attachment_url}'>";
}
$placeholder = __('e.g. http://foo.bar/image.jpg');
echo "<input type='text' placeholder='{$placeholder}' name='my_thumbnail_url' id='my_thumbnail_url' value='{$attachment_url}'>";
}
add_action( 'add_meta_boxes', 'add_my_meta_box');
投稿メタsave_post
(=おすすめの画像ID/URL)を処理する_thumbnail_id
フィルタを追加します。
function save_my_thumbnail_url($post_id) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( !current_user_can( 'edit_post', $post_id ) )
return;
if ($_POST['my_thumbnail_url'] && !empty($_POST['my_thumbnail_url'])) {
update_post_meta($post_id, '_thumbnail_id', $_POST['my_thumbnail_url']);
}
//TODO: Handle empty featured image url.
}
add_action( 'save_post', 'save_my_thumbnail_url', 99);
これで、テーマにURLベースのおすすめ画像を使用できます。
the_post_thumbnail();
// or…
$image_url = get_the_post_thumbnail_url(get_the_ID());
echo "<img src='{$image_url}'>"