כיצד לאפשר העלאת סוגי קבצים נוספים בוורדפרס?

מעוניינים להעלות קובץ בעל סיומת מסויימת לספריית המדיה ולא מצליחים?

למטרת בטיחות ואבטחה, וורדפרס מאפשרת העלאה אך ורק של סוגי הקבצים הנפוצים כגון תמונות, וידאו ומסמכים למינהם. אך מה עושים במקרה ואתם מעוניינים להעלות קבצים עם סיומת שוורדפרס אינה מאפשרת להעלות כברירת מחדל? אסביר במדריך קצר זה כיצד לאפשר העלאת סוגי קבצים נוספים בוורדפרס.

כיצד לאפשר העלאה של סוגי קובצים נוספים?

הנה קישור לרשימה של סוגי הקבצים שוורדפרס מאפשרת להעלות כברירת מחדל. הסיבה המרכזית שוורדפרס מונעת אפשרות מהמשתמשים להעלות את כל סוגי הקבצים היא אבטחה כפי שציינו. עם זאת ניתן לשנות זאת על ידי הוספת הקוד המופיע מטה לקובץ functions.php :

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

אם אינכם יודעים, הקובץ functions.php נמצא בתיקייה הראשית של התבנית שלכם…

במקרה זה אנו מאפשרים להעלות קבצי פוטושופ (PSD) וקבצי SVG. במידה ואתם מעוניינים להוסיף סוגי קבצים נוספים אתם צריכים לדעת את ה MIME Type שלהם, רשימה של MIME Types נפוצים תוכלו למצוא בקישור הבא.

כיצד למנוע את האפשרות להעלות סוג קובץ מסויים?

במידה ואתם מעוניינים להסיר סוג קובץ מסויים ולמנוע את האפשרות להעלות אותו, הוסיפו את הקוד הבא לקובץ functions.php :

function disallow_personal_uploads ( $existing_mimes=array() ) {
 
    // remove GIF files
    unset ($existing_mimes['gif']); 
 
    // return amended array
    return $existing_mimes;
}

// call our function when appropriate
add_filter('upload_mimes', 'disallow_personal_uploads');

קטע קוד זה יחסום את האפשרות להעלות קבצי gif בוורדפרס. מקווה שטיפ זה יעזור לכם, אתם מוזמנים כתמיד להגיב ולשתף…

רועי יוסף
רועי יוסף

מפתח וורדפרס, מאמין ביצירת הזדמנויות לעסקים קטנים, סטארטאפים נועזים ואנשים עצמאים לשנות את העולם. אוהב טיפוגרפיה, צבעים וכל מה שבינהם ומכוון לספק אתרי וורדפרס עם ביצועים גבוהים, תמיכה בכל הדפדפנים, בעלי קוד ולידי, סמנטי ונקי.

15תגובות...
  • דסי 20 בפברואר 2018, 11:49

    שלום רועי,
    זו ההזדמנות לומר תודה ענקית על הפוסטים המושקעים והמקצועיים, שבאים בדיוק בזמן!!! מעריכה מאד! ונעזרת בהם המוווון… לא יודעת מה הייתי עושה בלי…

    לגבי הפוסט הזה, שאלה: אם אפשר לדעת היכן אוכל למצא קוד לסוגי קבצים נוספים? למשל קובץ פאוור פוינט, אני לא מצליחה להעלות.

    תודה רבה!!

    • רועי יוסף 20 בפברואר 2018, 12:04

      תודה דסי, שמח לשמוע! 🙂

      ניתן להעלות קבצי פאוור פוינט (PPT או PPTX) לספריית המדיה. וורדפרס מאפשרת זאת כברירת מחדל עבור קבצים אלו ועבור סוגי הקבצים הבאים

      • דסי 20 בפברואר 2018, 13:17

        תודה רבה על המענה. ניסיתי, ואני לא מצליחה להעלות דרך המדיה.
        אולי משהו בהגדרות אחרות?

        • רועי יוסף 20 בפברואר 2018, 13:23

          מה השגיאה שאת מקבלת?

          • דסי 20 בפברואר 2018, 13:31

            לאחר מספר נסיונות הקובץ עלה לבסוף לאחר ששיניתי את שם הקובץ לשם באנגלית-אולי זו התשובה? לפני כן כתב שהקובץ לא מורשה מטעמי אבטחה.

            תודה רבה על המענה האדיב. אין דברים כאלו!!
            תצליח.

  • kuti 28 ביוני 2018, 12:26

    יש אפשרות לעזרה
    אך ניתן לעלות קובץ ZIP שיש בו ממסד קובץ נתוני מלונות לאתר ווארדפרס ואך להשתמש במידע ?
    תודה

  • מנחם 19 בדצמבר 2018, 0:09

    היי רועי , לא הצלחתי לאפשר העלאה של קבצי CSV יש לך אפשרות להעיף מבט פה מה פספסתי?
    זה מה שהוספתי ל function.php:

    function my_mime_types( $existing_mimes ) {
        $existing_mimes['csv'] = 'text/csv';
        
        return $existing_mimes;
    }
    add_filter( 'mime_types', 'my_mime_types' );

    תודה רבה על כל ההשקעה.

    • רועי יוסף 19 בדצמבר 2018, 0:16

      זהו באג בוורדפרס ששאני מאמין ויתוקן בקרוב. בינתים אתה יכול להוסיף את הקוד הבא ל functions.php:

      /**
       * Restore CSV upload functionality for WordPress 4.9.9 and up
       */
      add_filter('wp_check_filetype_and_ext', function($values, $file, $filename, $mimes) {
      	if ( extension_loaded( 'fileinfo' ) ) {
      		// with the php-extension, a CSV file is issues type text/plain so we fix that back to 
      		// text/csv by trusting the file extension.
      		$finfo     = finfo_open( FILEINFO_MIME_TYPE );
      		$real_mime = finfo_file( $finfo, $file );
      		finfo_close( $finfo );
      		if ( $real_mime === 'text/plain' && preg_match( '/\.(csv)$/i', $filename ) ) {
      			$values['ext']  = 'csv';
      			$values['type'] = 'text/csv';
      		}
      	} else {
      		// without the php-extension, we probably don't have the issue at all, but just to be sure...
      		if ( preg_match( '/\.(csv)$/i', $filename ) ) {
      			$values['ext']  = 'csv';
      			$values['type'] = 'text/csv';
      		}
      	}
      	return $values;
      }, PHP_INT_MAX, 4);
  • מירה 11 בינואר 2019, 2:24

    היי, תודה על כל מה שאתה כותב!
    שאלה- איך אני מוסיפה קובץ מוזיקה מהמחשב שלי לאתר וורדפרס, אבדה? אני מנסה להעלות את הקובץ לספריה אבל היא לא "מקבלת" את הקובץ, כלומר כבר בחיפוש הקובץ לא מופיע.

  • ישי גלעד 16 בפברואר 2019, 23:40

    היי רועי, אחלה אתר תודה!

    אני מנסה להעלאות קובץ vcf איך אני מעלה? לאיפה אני מעלה את הקוד? לעמוד הספציפי? אשמח להבין תודה

    • רועי יוסף 17 בפברואר 2019, 0:01

      היי ישי,

      עליך להוסיף את הקוד הבא לקובץ functions.php הנמצא בתיקייה הראשית של התבנית שלך על מנת לאפשר העלאה של קובץ VCF:

      <?php
      /**
       * Enable VCF File Upload 
       *
       */
      function be_enable_vcard_upload( $mime_types ){
        $mime_types['vcf'] = 'text/x-vcard';
        return $mime_types;
      }
      add_filter('upload_mimes', 'be_enable_vcard_upload' );

      שים לב כי אין להוסיף את השורה הראשונה (שורת ה PHP הפותחת)…

  • ישראל 21 בפברואר 2019, 17:54

    היי, אחלה מאמר – תודה!
    איך אני מעלה קובץ HTML לאתר? אני רוצה לאמת בעלות על הדומיין עבור G-SUITE וצריך להעלות HTML. אבל וורדפרס חוסם מטעמי אבטחה.

    • רועי יוסף 21 בפברואר 2019, 18:11

      היי ישראל,

      בשביל זה אתה צריך להעלות את הקובץ לתיקייה הראשית של האתר, לא יעבוד אחרת. את זה אתה יכול לעשות באמצעות FTP או דרך ה File Manager של שרת האחסון שלך.

השאירו תגובה

פעימות
Up!