Daryll DoyleによるSafe SVGのようなサードパーティのプラグインの助けを借りてWordPressのバックエンドメディアアップローダを通してSVG画像をうまくアップロードしたので、SVGファイルのwidth
、height
、またはviewBox
属性に格納される画像の寸法を取得する方法wp_get_attachment_image_src()
のようなWordPress関数をフロントエンドで使用するには?
PNGやJPEGなどの他の種類の画像とは異なり、WordPressはSVG画像の寸法をシステムに保存しません。
WordPressのバックエンドからファイルをアップロードしてそれらの寸法を取得し、その添付ファイルのデータベースに直接書き込むために起動するたびに起動するテーマのfunctions.php
で使用できるフックがあるでしょうか。
ありがとうございます。
SVGの使用についてはTom J Nowellに同意しますが、アップロードが実際の画像の場合は、wp_get_attachment_image_srcを使用して添付ファイルの属性を利用できます。
WPメディアアップローダを使用するとき、これらの寸法は実際にはすでに記録されて保存されています。おそらく、使用しているプラグインはWPメディアアップローダを使用しているでしょう。
添付ファイルが画像の場合は4つの属性(0 = URL、1 =幅、2 =高さ、3 = is_intermediate)が格納されます。画像でない場合はfalseです。
したがって、この例のようにこれらの属性を呼び出してエコーすることができます。
$img_atts = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), 'medium');
$img_src = $img_atts[0];
私はこれを使ってog:image:widthとog:image:heightのポストごとのOGタグを(他のOGタグと一緒に)作成するために画像の寸法(属性1と2)をエコーします。
あなたはここでより多くの情報を見つけることができます: https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/