WordPress で SVG 形式の画像のアップロードとメディア ライブラリへの表示をサポートする方法

藏色散人
リリース: 2020-12-09 13:53:05
転載
2420 人が閲覧しました

次のコラムWordPress チュートリアルでは、WordPress で SVG 形式の画像のアップロードをサポートし、メディア ライブラリに表示できるようにする方法を紹介します。友人の役に立てば幸いです。必要としている!

WordPress で SVG 形式の画像のアップロードとメディア ライブラリへの表示をサポートする方法

SVG 形式の画像の特性上、悪意のあるコードが挿入され、Web サイトが攻撃されやすいため、セキュリティ上の理由から、WordPress では SVG 形式の画像のアップロードをサポートしていませんまた、SVG形式の画像はネット上で利用価値が高いと言われていますが、Webページ上の一部の小さなアイコンなどでSVG画像が使用できる場合を除き、通常のカラー画像ではSVG形式を使用するメリットはありません。ただし、テーマのロゴ画像など、この SVG 画像が本当に必要な場合もありますが、携帯電話で PNG 画像が鮮明でない場合は、SVG 形式を使用するとこの問題は発生しません。

WordPress で SVG 形式の画像のアップロードをサポートするにはどうすればよいですか?

現在のテーマ関数テンプレート function.php に次のコードを追加できます:

WordPress で SVG のアップロードをサポートし、管理者のみがこの権限を持ちます

// 只允许管理员上传SVG图片 if (current_user_can( 'manage_options' )) { add_filter('upload_mimes', function ($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; }); }
ログイン後にコピー

メディア ライブラリ リストモード SVG 画像の表示

// 媒体库列表模式显示SVG图片 add_action('admin_head', function () { echo ""; });
ログイン後にコピー

インターネット上には同様のコードが多数ありますが、SVG 画像を表示するためのメディア ライブラリ グリッド モードをサポートするものはありません。次のコードを実行できます:

// 媒体库网格模式显示SVG图片 function zm_display_svg_media($response, $attachment, $meta){ if($response['type'] === 'image' && $response['subtype'] === 'svg+xml' && class_exists('SimpleXMLElement')){ try { $path = get_attached_file($attachment->ID); if(@file_exists($path)){ $svg = new SimpleXMLElement(@file_get_contents($path)); $src = $response['url']; $width = (int) $svg['width']; $height = (int) $svg['height']; $response['image'] = compact( 'src', 'width', 'height' ); $response['thumb'] = compact( 'src', 'width', 'height' ); $response['sizes']['full'] = array( 'height' => $height, 'width' => $width, 'url' => $src, 'orientation' => $height > $width ? 'portrait' : 'landscape', ); } } catch(Exception $e){} } return $response; } add_filter('wp_prepare_attachment_for_js', 'zm_display_svg_media', 10, 3);
ログイン後にコピー

もう 1 つは比較的コードが少なく、SVG 画像コードを表示するためのメディア ライブラリ グリッド モードをサポートしていますが、デバッグ モードをオンにするとエラー メッセージが表示されますが、使用には影響しません。

// 媒体库网格模式显示SVG图片 function zm_svg_metadata($data, $post_id) { $data = array( 'sizes' => array( 'large' => array( 'file' => pathinfo(wp_get_attachment_url($post_id), PATHINFO_BASENAME) ) ) ); return $data; } add_filter('wp_get_attachment_metadata', 'zm_svg_metadata', 10, 2);
ログイン後にコピー

この機能が何に使用されるかについては、使用しているテーマにこの機能が必要かどうかによって異なりますが、Web ページで直接 FTP アップロードした後にリンクを取得するために使用することもできます。

コードをいじるのが面倒な場合は、次の関連プラグインを使用できます:

SVG Support Enable SVG Safe SVG(据说该插件可以检测并去除SVG中的恶意代码,与250+110有的一拼) WP SVG images Easy SVG Support Enable SVG Uploads ......
ログイン後にコピー

以上がWordPress で SVG 形式の画像のアップロードとメディア ライブラリへの表示をサポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:zmingcx.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!