So stellen Sie sicher, dass WordPress das Hochladen von Bildern im SVG-Format und deren Anzeige in der Medienbibliothek unterstützt

藏色散人
Freigeben: 2020-12-09 13:53:05
nach vorne
2537 Leute haben es durchsucht

Im folgenden Abschnitt der Kolumne „WordPress-Tutorial“ erfahren Sie, wie Sie WordPress aktivieren, um das Hochladen von Bildern im SVG-Format und deren Anzeige in der Medienbibliothek zu unterstützen.

Aufgrund der Eigenschaften von Bildern im SVG-Format kann schädlicher Code eingefügt werden und die Website wird aus Sicherheitsgründen nicht standardmäßig unterstützt Nicht so beliebt wie das Internet sagt, dass Bilder im SVG-Format weit verbreitet sind. Abgesehen von einigen kleinen Symbolen auf Webseiten, die SVG-Bilder verwenden können, bietet es überhaupt keinen Vorteil, wenn Sie das SVG-Format für normale Farbbilder verwenden. Manchmal benötigen Sie dieses SVG-Bild jedoch wirklich, z. B. das LOGO-Bild meines Themas. Wenn das PNG-Bild auf dem Mobiltelefon nicht sehr klar ist, tritt dieses Problem bei Verwendung des SVG-Formats nicht auf.

So stellen Sie sicher, dass WordPress das Hochladen von Bildern im SVG-Format und deren Anzeige in der Medienbibliothek unterstütztWie kann WordPress das Hochladen von Bildern im SVG-Format unterstützen?

Sie können den folgenden Code zur aktuellen Theme-Funktionsvorlage „functions.php“ hinzufügen:

Lassen Sie WordPress das Hochladen von SVG unterstützen, und nur Administratoren haben diese Berechtigung

// 只允许管理员上传SVG图片
if (current_user_can( 'manage_options' )) {
add_filter('upload_mimes', function ($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
});
}
Nach dem Login kopieren

SVG-Bilder im Medienbibliothekslistenmodus anzeigen

// 媒体库列表模式显示SVG图片
add_action('admin_head', function () {
echo "<style>table.media .column-title .media-icon img[src*=&#39;.svg&#39;]{width: 100%;height: auto;}.components-responsive-wrapper__content[src*=&#39;.svg&#39;] {position: relative;}</style>";
});
Nach dem Login kopieren

Es gibt viele ähnliche diejenigen im Internet-Code, aber keiner von ihnen unterstützt die Anzeige von SVG-Bildern im Medienbibliotheks-Rastermodus. Der folgende Code kann implementiert werden:

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

Ein anderer Code mit relativ weniger Code unterstützt die Anzeige von SVG-Bildern im Medienbibliotheks-Raster Modus, aber es treten Fehler auf, wenn der Debug-Modus aktiviert ist. Tipps haben jedoch keinen Einfluss auf die Verwendung.

// 媒体库网格模式显示SVG图片
function zm_svg_metadata($data, $post_id) {
$data = array(
&#39;sizes&#39; => array(
&#39;large&#39; => array(
&#39;file&#39; => pathinfo(wp_get_attachment_url($post_id), PATHINFO_BASENAME)
)
)
);
return $data;
}
add_filter(&#39;wp_get_attachment_metadata&#39;, &#39;zm_svg_metadata&#39;, 10, 2);
Nach dem Login kopieren

Der Zweck dieser Funktion hängt davon ab, ob das von Ihnen verwendete Theme über diese Funktion verfügt. Sie können sie auch auf der Webseite verwenden, um den Link abzurufen, nachdem Sie ihn direkt per FTP hochgeladen haben.

Wenn Sie Schwierigkeiten haben, mit dem Code herumzuspielen, können Sie die folgenden verwandten Plug-Ins verwenden:

SVG Support
Enable SVG
Safe SVG(据说该插件可以检测并去除SVG中的恶意代码,与250+110有的一拼)
WP SVG images
Easy SVG Support
Enable SVG Uploads
......
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo stellen Sie sicher, dass WordPress das Hochladen von Bildern im SVG-Format und deren Anzeige in der Medienbibliothek unterstützt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:zmingcx.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage