最新公告
  • 欢迎您光临站盟网(原知事网),一个优质的网站源码基地、精品网站模板和插件。欢迎加入永久SVIP
  • WordPress函数wp_mime_type_icon()用法 获取MIME类型的图标

    正文概述 知事网   2020-09-17 11:09   899

    描述:

    获取MIME类型的图标

    用法:

    <?php wp_mime_type_icon( $mime ) ?>

    参数:

    $mime
    
    (string) (可选) MIME类型
    
    默认值: 0
    
    返回值:
    (string|boolean)
    
    所有被“钩住”的函数应用到过滤后的值以后,返回过滤后的值。

    示例:

    <?php
    $img = wp_mime_type_icon('video/mp4');
    ?>
    <img src="<?php echo $img ?>" />

    源文件:

    /**
    * Retrieve the icon for a MIME type.
    *
    * @since 2.1.0
    *
    * @param string|int $mime MIME type or attachment ID.
    * @return string|false Icon, false otherwise.
    */
    function wp_mime_type_icon( $mime = 0 ) {
    if ( !is_numeric($mime) )
    $icon = wp_cache_get("mime_type_icon_$mime");
    
    $post_id = 0;
    if ( empty($icon) ) {
    $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) ) {
    /**
    * Filter the icon directory path.
    *
    * @since 2.0.0
    *
    * @param string $path Icon directory absolute path.
    */
    $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' );
    
    /**
    * Filter the icon directory URI.
    *
    * @since 2.0.0
    *
    * @param string $uri Icon directory URI.
    */
    $icon_dir_uri = apply_filters( 'icon_dir_uri', includes_url( 'images/media' ) );
    
    /**
    * Filter the list of icon directory URIs.
    *
    * @since 2.5.0
    *
    * @param array $uris List of icon directory URIs.
    */
    $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($file, 0, 1) == '.' )
    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_add( 'icon_files', $icon_files, 'default', 600 );
    }
    
    $types = array();
    // Icon basename - extension = MIME wildcard.
    foreach ( $icon_files as $file => $uri )
    $types[ preg_replace('/^([^.]*).*$/', '$1', basename($file)) ] =& $icon_files[$file];
    
    if ( ! empty($mime) ) {
    $post_mimes[] = substr($mime, 0, strpos($mime, '/'));
    $post_mimes[] = substr($mime, strpos($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_add("mime_type_icon_$mime", $icon);
    break;
    }
    }
    }
    
    /**
    * Filter the mime type icon.
    *
    * @since 2.1.0
    *
    * @param string $icon Path to the mime type icon.
    * @param string $mime Mime type.
    * @param int $post_id Attachment ID. Will equal 0 if the function passed
    * the mime type.
    */
    return apply_filters( 'wp_mime_type_icon', $icon, $mime, $post_id );
    }

    站盟网 » WordPress函数wp_mime_type_icon()用法 获取MIME类型的图标

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者
    请选择支付方式
    ×
    支付宝支付
    微信支付
    余额支付
    ×
    微信扫码支付 0 元