آپلود svg در وردپرس بدون افزونه

تاریخ: 13 فروردین 1400

آپلود svg در وردپرس ممکن است در بعضی موارد نیاز شود. مثلا زمانی که در حال نوشتن یک مطلب هستید، ممکن است بخواهید یک تصویر با فرمت svg را وارد کنید.

هنگامی که بر روی دکمه افزودن پرونده چند رسانه ای میزنید و سپس فایل svg خود را انتخاب می کنید، وردپرس یک خطا ایجاد می کند و می گوید با عرض پوزش، این نوع پرونده به دلایل امنیتی مجاز نیست.

آپلود-svg-در-وردپرس-و-حذف-ممنوعیت-آن

 

در حالی که ما لازم داریم حتما فایل svg خودمان را آپلود و در مطلب استفاده نماییم.

چرا آپلود svg در وردپرس محدود شده است

فایل های با فرمت svg برخلاف تصاویر که از پیکسل ها ساخته شده اند، با کدنویسی ایجاد می شوند.

در واقع چیزی که این تصاویر svg را ایجاد می کند، کدنویسی xml می باشد و این کدها توسط مرورگر اجرا می شوند.

این کدها می توانند شامل حفره های امنیتی باشند و شما نیز ناخواسته و بی اطلاع، قصد آپلود آن را داشته باشید.

پس از اینکه فایل مخرب توسط شما در دیتابیس و هاست آپلود شود، هکرها شروع به نفوذ به وبسایت شما می کنند!

نکته خیلی خیلی مهم: فقط از پرونده های svg که توسط منابع معتبر ایجاد شده اند استفاده کنید و آپلودهای SVG را فقط به کاربران معتمد محدود کنید. حتما کدهای فایل svg را بررسی کنید تا کد مخرب درون آن نباشد.

 

فعال کردن امکان آپلود svg در وردپرس بدون استفاده از افزونه

افزونه های زیادی برای این کار وجود دارند ولی با توجه به اینکه هر افزونه می تواند تاثیر منفی در اجرای سایت شما و بهینه بودن عملکرد آن داشته باشد، لذا اولویت با روش بدون افزونه می باشد.

برای فعال کردن امکان آپلود فرمت svg دو قدم پیش رو داریم:

اول اینکه به فایل wp-config.php در هاست خود بروید و فایل زیر را در انتهای فایل و قبل از تعریف ABSPATH بگذارید:

 
define( 'ALLOW_UNFILTERED_UPLOADS', true );

 

دوم اینکه به فایل functions.php قالب خود بروید (چایلدتم) و کد زیر را در انتهای آن وارد نمایید:

 
//add SVG to allowed file uploads
function add_file_types_to_uploads($file_types){
    if(current_user_can('manage_options')) {
        $new_filetypes = array();
        $new_filetypes['svg'] = 'image/svg';
        $file_types = array_merge($file_types, $new_filetypes );
        return $file_types; 
    }
} 
add_action('upload_mimes', 'add_file_types_to_uploads');

 

در دستور بالا، ما فقط این امکان را به مدیران داده ایم تا بتوانند فایل svg آپلود کنند چون ممکن است کاربران غیرادمین کارهای مخرب انجام دهند!

اگر می خواهید برای همه کاربران فعال شود این دستور را استفاده کنید:

 
//add SVG to allowed file uploads
function add_file_types_to_uploads($file_types){
    $new_filetypes = array();
    $new_filetypes['svg'] = 'image/svg';
    $file_types = array_merge($file_types, $new_filetypes );
    return $file_types; 
} 
add_action('upload_mimes', 'add_file_types_to_uploads');

کار ما تمام شده است. اکنون به مطلب خود بروید و فایل svg خودتان را آپلود کنید.

اگر در مورد این مطلب نظری دارید و یا مشکلی در آن می بینید لطفا از طریق کامنت ما را در جریان بگذارید …

 

پاسخ دادن به بهروز

  • بهروز گفت:

    سلام وقت بخیر
    ممنون از مقاله خوب شما
    فقط لطفا امکان کپی از کدها را در سایت قرار بدید

  • طراحی افزونه وردپرس