Włącz bezpieczne przesyłanie plików SVG w WordPressie
Objaśnienie
Aby umożliwić przesyłanie plików SVG w WordPressie, musisz wprowadzić kilka zmian. Oto prosty sposób, aby to zrobić:
- Włącz przesyłanie plików SVG: Kod dodaje SVG do listy typów plików, które możesz przesyłać. Robi to poprzez dodanie typu MIME SVG do WordPressa.
- Środki bezpieczeństwa: Pliki SVG mogą zawierać kod, dlatego ważne jest, aby je oczyścić. Kod zawiera funkcję zastępczą do oczyszczania plików SVG przed ich przesłaniem. Powinieneś zastąpić to rzeczywistym procesem sanitizacji, aby zapewnić bezpieczeństwo.
- Powiadomienie dla administratora: Po włączeniu przesyłania plików SVG w panelu administracyjnym pojawi się powiadomienie dla administratora, które potwierdzi, że przesyłanie plików SVG jest aktywne i jest poddawane sanitizacji.
Pamiętaj, że chociaż ten kod umożliwia przesyłanie plików SVG, kluczowe jest zapewnienie, że pliki SVG są bezpieczne. Rozważ użycie zaufanej biblioteki lub wtyczki do sanitizacji, jeśli nie czujesz się komfortowo, pisząc własne rozwiązanie.
Kod
// Function to allow SVG uploads in WordPress
function wp_dudecom_mime_types($mimes) {
// Add SVG mime type
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'wp_dudecom_mime_types');
// Function to sanitize SVG files for security
function wp_dudecom_sanitize_svg($file) {
if ($file['type'] === 'image/svg+xml') {
$svg = file_get_contents($file['tmp_name']);
// Use a library or custom function to sanitize SVG content
$sanitized_svg = wp_dudecom_sanitize_svg_content($svg);
file_put_contents($file['tmp_name'], $sanitized_svg);
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'wp_dudecom_sanitize_svg');
// Example function to sanitize SVG content
function wp_dudecom_sanitize_svg_content($svg) {
// Implement SVG sanitization logic here
// This is a placeholder for actual sanitization code
return $svg;
}
// Function to check and display admin notice if SVG uploads are enabled
function wp_dudecom_svg_admin_notice() {
if (current_user_can('manage_options')) {
echo '<div class="notice notice-success is-dismissible"><p>SVG uploads are enabled and sanitized for security.</p></div>';
}
}
add_action('admin_notices', 'wp_dudecom_svg_admin_notice');
Instrukcja
Aby wdrożyć przesyłanie plików SVG w WordPressie, wykonaj następujące kroki:
Lokalizacja pliku: Dodaj kod do pliku functions.php
swojego motywu lub stwórz plik własnej wtyczki.
Wymagania wstępne: Upewnij się, że masz dostęp do plików motywu WordPress lub możliwość stworzenia własnej wtyczki.
Kroki wdrożenia:
- Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby przejść do katalogu instalacji WordPress.
- Znajdź plik functions.php: Przejdź do
wp-content/themes/twojego-aktywnego-motywu/functions.php
lub stwórz nowy plik wtyczki wwp-content/plugins/
. - Edytuj plik: Otwórz plik
functions.php
lub plik wtyczki w edytorze tekstu. - Wstaw kod: Skopiuj i wklej podany fragment kodu do pliku. Upewnij się, że jest umieszczony w tagach PHP
<?php ... ?>
. - Zapisz zmiany: Po dodaniu kodu, zapisz plik i wgraj go z powrotem na serwer, jeśli używasz klienta FTP.
- Przetestuj przesyłanie: Zaloguj się do panelu administracyjnego WordPress i spróbuj przesłać plik SVG przez bibliotekę mediów, aby upewnić się, że funkcjonalność działa.
- Zweryfikuj powiadomienie administracyjne: Sprawdź powiadomienie administracyjne potwierdzające, że przesyłanie plików SVG jest włączone i oczyszczone.
Ważna uwaga: Kod zawiera funkcję zastępczą do oczyszczania SVG. Zastąp ją rzeczywistym procesem oczyszczania lub użyj zaufanej biblioteki, aby zapewnić bezpieczeństwo.
Jeśli potrzebujesz pomocy przy wdrożeniu lub bardziej zaawansowanej funkcjonalności, rozważ skorzystanie z usług wp-dude.com.