Custom Field Templateは画像IDでしか保存しないのでそれが原因です。
Advanced Custom FieldsやCustom Field Suiteなどのプラグインなら画像のURLで保存できるので、そのようなプラグインに乗り換えるのがベストだと思います。
どうしてもCustom Field Templateでなければいけないなら保存時に無理矢理URLで保存させる方法もあります。
function my_update_meta( $post_id ) {
$key = 'blog-top-thumbnail';
$image_id = get_post_meta( $post_id, $key, true );
$image_url = wp_get_attachment_url( $image_id );
update_post_meta( $post_id ,$key, $image_url, $image_id );
//add_post_meta( $post_id, '別のキーを指定', $image_url );//別名にする場合(ボツ)
//update_post_meta( $post_id '別のキーを指定', $image_url );//別名にする場合(こっちを使う)
}
add_action( 'save_post', 'my_update_meta' ,9999 ,2 );
難点は管理画面で見てもどの画像を設定しているのか一見して分からなくなる位でしょうか。
それが嫌ならupdate_post_meta
ではなくadd_post_meta
に変えて別名で保存すれば管理画面で見えなくなることもなくなります。
WordPress Related Postsには別のキーのカスタムフィールドを指定するだけです。
追記
よく考えたらadd_post_meta
だと更新したらゴミが増えるのでupdate_post_meta
で追加した方が良いですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/12 01:11