آپلود نشدن عکس با فرمت webp در وردپرس

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

    webp vs jpg

    فرمت webp در وب چه کاربردی دارد؟

    webp در سال ۲۰۱۰ توسط تیم متخصص گوگل ایجاد شده و یک یک فرمت تصویری برای استفاده در صفحات وب برای کم حجم شدن تصاویر ارائه شده است.

    این فرمت جایگزینی برای jpg و png ایجاد شده که نسبت به این دو فرمت تصاویر بدون افت کیفیت دارای حجم کمتری خواهند داشت و در نتیجه سرعت لود صفحات وب سایت بهتر خواهد شد.

    webp

    رفع محدودیت آپلود فرمت webp با افزونه

    با نصب و فعالسازی این افزونه نیازی به انجام هیچکاری نیست و این محدودیت رفع خواهد شد.

    رفع محدودیت آپلود فرمت webp به روش دستی

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

    برای اینکار شما میتونید برای تزریق کد در قالب از افزونه Code Snippets یا افزونه Insert PHP Code Snippet استفاده کنید تا کد های php مورد نظر را در سایت تزریق کنید.

    راه بعدی هم تزریق مستقیم کد در فایل function.php قالب است که باید وارد پوشه قالب در هاست خود بشید و کد های زیر را در فایل قالب قرار بدید.

    // Enable upload for webp image files - www.themento.net
    function tmt_webp_upload_mimes($existing_mimes) {
        $existing_mimes['webp'] = 'image/webp';
        return $existing_mimes;
    }
    add_filter('mime_types', 'tmt_webp_upload_mimes');

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

    // Enable preview - thumbnail for webp image files - www.themento.net
    function tmt_webp_is_displayable($result, $path) {
        if ($result === false) {
            $displayable_image_types = array( IMAGETYPE_WEBP );
            $info = @getimagesize( $path );
    
            if (empty($info)) {
                $result = false;
            } elseif (!in_array($info[2], $displayable_image_types)) {
                $result = false;
            } else {
                $result = true;
            }
        }
    
        return $result;
    }
    add_filter('file_is_displayable_image', 'tmt_webp_is_displayable', 10, 2);
    علی امینی

    علی امینی

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

    ۵ نظر

    ارسال نظر

    آدرس ایمیل شما منتشر نخواهد شد.