Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_mime_type_icon [ WordPress Function ]

wp_mime_type_icon ( $mime = 0 )
Parameters:
  • (string|int) $mime MIME type or attachment ID.
Returns:
  • (string|bool)
Defined at:



Retrieve the icon for a MIME type.

Source


<?php
function wp_mime_type_icon$mime ) {
    if ( !
is_numeric($mime) )
        
$icon wp_cache_get("mime_type_icon_$mime");
    if ( empty(
$icon) ) {
        
$post_id 0;
        
$post_mimes = array();
        if ( 
is_numeric($mime) ) {
            
$mime = (int) $mime;
            if ( 
$post =& get_post$mime ) ) {
                
$post_id = (int) $post->ID;
                
$ext preg_replace('/^.+?\.([^.]+)$/''$1'$post->guid);
                if ( !empty(
$ext) ) {
                    
$post_mimes[] = $ext;
                    if ( 
$ext_type wp_ext2type$ext ) )
                        
$post_mimes[] = $ext_type;
                }
                
$mime $post->post_mime_type;
            } else {
                
$mime 0;
            }
        } else {
            
$post_mimes[] = $mime;
        }

        
$icon_files wp_cache_get('icon_files');

        if ( !
is_array($icon_files) ) {
            
$icon_dir apply_filters'icon_dir'ABSPATH WPINC '/images/crystal' );
            
$icon_dir_uri apply_filters'icon_dir_uri'includes_url('images/crystal') );
            
$dirs apply_filters'icon_dirs', array($icon_dir => $icon_dir_uri) );
            
$icon_files = array();
            while ( 
$dirs ) {
                
$keys array_keys$dirs );
                
$dir array_shift$keys );
                
$uri array_shift($dirs);
                if ( 
$dh opendir($dir) ) {
                    while ( 
false !== $file readdir($dh) ) {
                        
$file basename($file);
                        if ( 
substr($file01) == '.' )
                            continue;
                        if ( !
in_array(strtolower(substr($file, -4)), array('.png''.gif''.jpg') ) ) {
                            if ( 
is_dir("$dir/$file") )
                                
$dirs["$dir/$file"] = "$uri/$file";
                            continue;
                        }
                        
$icon_files["$dir/$file"] = "$uri/$file";
                    }
                    
closedir($dh);
                }
            }
            
wp_cache_set('icon_files'$icon_files600);
        }

        
// Icon basename - extension = MIME wildcard
        
foreach ( $icon_files as $file => $uri )
            
$typespreg_replace('/^([^.]*).*$/''$1'basename($file)) ] =& $icon_files[$file];

        if ( ! empty(
$mime) ) {
            
$post_mimes[] = substr($mime0strpos($mime'/'));
            
$post_mimes[] = substr($mimestrpos($mime'/') + 1);
            
$post_mimes[] = str_replace('/''_'$mime);
        }

        
$matches wp_match_mime_types(array_keys($types), $post_mimes);
        
$matches['default'] = array('default');

        foreach ( 
$matches as $match => $wilds ) {
            if ( isset(
$types[$wilds[0]])) {
                
$icon $types[$wilds[0]];
                if ( !
is_numeric($mime) )
                    
wp_cache_set("mime_type_icon_$mime"$icon);
                break;
            }
        }
    }

    return 
apply_filters'wp_mime_type_icon'$icon$mime$post_id ); // Last arg is 0 if function pass mime type.
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics