PHP 37
CSS force to load at clientside - php modify date - less css version By timo on 10th July 2019 02:25:51 PM
  1. $styles = [
  2.       'dashicons' => [
  3.         'url'   => includes_url().'css/dashicons.min.css',
  4.         'media' => 'all'
  5.       ],
  6.       'fonts' => [
  7.         'url'   => 'https://fonts.googleapis.com/css?family=Open+Sans:400,600,700',
  8.         'media' => 'all'
  9.       ],
  10.       'fontawesome' => [
  11.         'url'         => 'https://pro.fontawesome.com/releases/v5.8.2/css/all.css',
  12.         'media'       => 'all',
  13.         'integrity'   => 'sha384-xVVam1KS4+Qt2OrFa+VdRUoXygyKIuNWUUUBZYv+n27STsJ7oDOHJgfF0bNKLMJF',
  14.         'crossorigin' => 'anonymous'
  15.       ],
  16.       'swiper' => [
  17.         'url'   => 'https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/css/swiper.min.css',
  18.         'media' => 'all'
  19.       ],
  20.       'fancybox' => [
  21.         'url'   => 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.css',
  22.         'media' => 'all'
  23.       ],
  24.       'print' => [
  25.         'url'   => get_path('css') . '/print.min.css',
  26.         'media' => 'print'
  27.       ]
  28.     ];
  29.     if ( DEVICE == 'desktop' ) {
  30.  
  31.       $desktop = [
  32.         'mobile' => [
  33.           'url'   => get_path('css') . '/mobile.min.css',
  34.           'media' => 'screen and (max-width: 768px)',
  35.           'ver'   => [
  36.             'type' => 'date',
  37.             'path' => get_path('css', 'dir') . '/mobile.min.css',
  38.           ]
  39.         ],
  40.         'tablet' => [
  41.           'url'   => get_path('css') . '/tablet.min.css',
  42.           'media' => 'screen and (max-width: 1024px)',
  43.           'ver'   => '1.0'
  44.         ],
  45.         'desktop' => [
  46.           'url'   => get_path('css') . '/desktop.min.css',
  47.           'path'  => get_path('css', 'dir') . '/mobile.min.css',
  48.           'media' => 'screen and (min-width: 1025px)',
  49.           'ver'   => [
  50.             'type' => 'size',
  51.             'path' => get_path('css', 'dir') . '/mobile.min.css',
  52.           ]
  53.         ],
  54.       ];
  55.  
  56.       $styles = array_merge($styles, $desktop);
  57.  
  58.     } else if ( DEVICE == 'tablet' ) {
  59.  
  60.       $styles['tablet'] = [
  61.         'url'   => get_path('css') . '/tablet.min.css',
  62.         'media' => 'all'
  63.       ];
  64.  
  65.     } else if ( DEVICE == 'mobile' ) {
  66.  
  67.       $styles['mobile'] = [
  68.         'url'   => get_path('css') . '/mobile.min.css',
  69.         'media' => 'all'
  70.       ];
  71.  
  72.     }
  73.  
  74.     foreach ($styles as $style) {
  75.       $url = $style['url'];
  76.       if ( is_array($style['ver']) ) {
  77.         switch ( $style['ver']['type'] ) {
  78.           case 'date':
  79.             $version = filemtime($style['ver']['path']);
  80.             break;
  81.           case 'size':
  82.             $version = filesize($style['ver']['path']);
  83.             break;
  84.         }
  85.         $url .= '?v=' . $version;
  86.       } else if ( isset ($style['ver']) ) {
  87.         $url .= '?v=' . $style['ver'];
  88.       }
  89.       echo '
  90.       <link rel="stylesheet" href="'.$url.'"
  91.        ' . (!empty($style['integrity']) ? ' integrity="'.$style['integrity'].'"' : '') . '
  92.        ' . (!empty($style['crossorigin']) ? ' crossorigin="'.$style['crossorigin'].'"' : '') . '
  93.        media="'.$style['media'].'">
  94.        ';
  95.     }

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.