home *** CD-ROM | disk | FTP | other *** search
/ HTML Examples / WP.iso / wordpress / wp-includes / functions.wp-styles.php < prev    next >
Encoding:
PHP Script  |  2016-09-03  |  7.9 KB  |  232 lines

  1. <?php
  2. /**
  3.  * Dependencies API: Styles functions
  4.  *
  5.  * @since 2.6.0
  6.  *
  7.  * @package WordPress
  8.  * @subpackage Dependencies
  9.  */
  10.  
  11. /**
  12.  * Initialize $wp_styles if it has not been set.
  13.  *
  14.  * @global WP_Styles $wp_styles
  15.  *
  16.  * @since 4.2.0
  17.  *
  18.  * @return WP_Styles WP_Styles instance.
  19.  */
  20. function wp_styles() {
  21.     global $wp_styles;
  22.     if ( ! ( $wp_styles instanceof WP_Styles ) ) {
  23.         $wp_styles = new WP_Styles();
  24.     }
  25.     return $wp_styles;
  26. }
  27.  
  28. /**
  29.  * Display styles that are in the $handles queue.
  30.  *
  31.  * Passing an empty array to $handles prints the queue,
  32.  * passing an array with one string prints that style,
  33.  * and passing an array of strings prints those styles.
  34.  *
  35.  * @global WP_Styles $wp_styles The WP_Styles object for printing styles.
  36.  *
  37.  * @since 2.6.0
  38.  *
  39.  * @param string|bool|array $handles Styles to be printed. Default 'false'.
  40.  * @return array On success, a processed array of WP_Dependencies items; otherwise, an empty array.
  41.  */
  42. function wp_print_styles( $handles = false ) {
  43.     if ( '' === $handles ) { // for wp_head
  44.         $handles = false;
  45.     }
  46.     /**
  47.      * Fires before styles in the $handles queue are printed.
  48.      *
  49.      * @since 2.6.0
  50.      */
  51.     if ( ! $handles ) {
  52.         do_action( 'wp_print_styles' );
  53.     }
  54.  
  55.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  56.  
  57.     global $wp_styles;
  58.     if ( ! ( $wp_styles instanceof WP_Styles ) ) {
  59.         if ( ! $handles ) {
  60.             return array(); // No need to instantiate if nothing is there.
  61.         }
  62.     }
  63.  
  64.     return wp_styles()->do_items( $handles );
  65. }
  66.  
  67. /**
  68.  * Add extra CSS styles to a registered stylesheet.
  69.  *
  70.  * Styles will only be added if the stylesheet in already in the queue.
  71.  * Accepts a string $data containing the CSS. If two or more CSS code blocks
  72.  * are added to the same stylesheet $handle, they will be printed in the order
  73.  * they were added, i.e. the latter added styles can redeclare the previous.
  74.  *
  75.  * @see WP_Styles::add_inline_style()
  76.  *
  77.  * @since 3.3.0
  78.  *
  79.  * @param string $handle Name of the stylesheet to add the extra styles to.
  80.  * @param string $data   String containing the CSS styles to be added.
  81.  * @return bool True on success, false on failure.
  82.  */
  83. function wp_add_inline_style( $handle, $data ) {
  84.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  85.  
  86.     if ( false !== stripos( $data, '</style>' ) ) {
  87.         _doing_it_wrong( __FUNCTION__, sprintf(
  88.             /* translators: 1: <style>, 2: wp_add_inline_style() */
  89.             __( 'Do not pass %1$s tags to %2$s.' ),
  90.             '<code><style></code>',
  91.             '<code>wp_add_inline_style()</code>'
  92.         ), '3.7.0' );
  93.         $data = trim( preg_replace( '#<style[^>]*>(.*)</style>#is', '$1', $data ) );
  94.     }
  95.  
  96.     return wp_styles()->add_inline_style( $handle, $data );
  97. }
  98.  
  99. /**
  100.  * Register a CSS stylesheet.
  101.  *
  102.  * @see WP_Dependencies::add()
  103.  * @link https://www.w3.org/TR/CSS2/media.html#media-types List of CSS media types.
  104.  *
  105.  * @since 2.6.0
  106.  * @since 4.3.0 A return value was added.
  107.  *
  108.  * @param string           $handle Name of the stylesheet. Should be unique.
  109.  * @param string           $src    Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
  110.  * @param array            $deps   Optional. An array of registered stylesheet handles this stylesheet depends on. Default empty array.
  111.  * @param string|bool|null $ver    Optional. String specifying stylesheet version number, if it has one, which is added to the URL
  112.  *                                 as a query string for cache busting purposes. If version is set to false, a version
  113.  *                                 number is automatically added equal to current installed WordPress version.
  114.  *                                 If set to null, no version is added.
  115.  * @param string           $media  Optional. The media for which this stylesheet has been defined.
  116.  *                                 Default 'all'. Accepts media types like 'all', 'print' and 'screen', or media queries like
  117.  *                                 '(orientation: portrait)' and '(max-width: 640px)'.
  118.  * @return bool Whether the style has been registered. True on success, false on failure.
  119.  */
  120. function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
  121.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  122.  
  123.     return wp_styles()->add( $handle, $src, $deps, $ver, $media );
  124. }
  125.  
  126. /**
  127.  * Remove a registered stylesheet.
  128.  *
  129.  * @see WP_Dependencies::remove()
  130.  *
  131.  * @since 2.1.0
  132.  *
  133.  * @param string $handle Name of the stylesheet to be removed.
  134.  */
  135. function wp_deregister_style( $handle ) {
  136.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  137.  
  138.     wp_styles()->remove( $handle );
  139. }
  140.  
  141. /**
  142.  * Enqueue a CSS stylesheet.
  143.  *
  144.  * Registers the style if source provided (does NOT overwrite) and enqueues.
  145.  *
  146.  * @see WP_Dependencies::add()
  147.  * @see WP_Dependencies::enqueue()
  148.  * @link https://www.w3.org/TR/CSS2/media.html#media-types List of CSS media types.
  149.  *
  150.  * @since 2.6.0
  151.  *
  152.  * @param string           $handle Name of the stylesheet. Should be unique.
  153.  * @param string           $src    Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
  154.  *                                 Default empty.
  155.  * @param array            $deps   Optional. An array of registered stylesheet handles this stylesheet depends on. Default empty array.
  156.  * @param string|bool|null $ver    Optional. String specifying stylesheet version number, if it has one, which is added to the URL
  157.  *                                 as a query string for cache busting purposes. If version is set to false, a version
  158.  *                                 number is automatically added equal to current installed WordPress version.
  159.  *                                 If set to null, no version is added.
  160.  * @param string           $media  Optional. The media for which this stylesheet has been defined.
  161.  *                                 Default 'all'. Accepts media types like 'all', 'print' and 'screen', or media queries like
  162.  *                                 '(orientation: portrait)' and '(max-width: 640px)'.
  163.  */
  164. function wp_enqueue_style( $handle, $src = '', $deps = array(), $ver = false, $media = 'all' ) {
  165.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  166.  
  167.     $wp_styles = wp_styles();
  168.  
  169.     if ( $src ) {
  170.         $_handle = explode('?', $handle);
  171.         $wp_styles->add( $_handle[0], $src, $deps, $ver, $media );
  172.     }
  173.     $wp_styles->enqueue( $handle );
  174. }
  175.  
  176. /**
  177.  * Remove a previously enqueued CSS stylesheet.
  178.  *
  179.  * @see WP_Dependencies::dequeue()
  180.  *
  181.  * @since 3.1.0
  182.  *
  183.  * @param string $handle Name of the stylesheet to be removed.
  184.  */
  185. function wp_dequeue_style( $handle ) {
  186.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  187.  
  188.     wp_styles()->dequeue( $handle );
  189. }
  190.  
  191. /**
  192.  * Check whether a CSS stylesheet has been added to the queue.
  193.  *
  194.  * @since 2.8.0
  195.  *
  196.  * @param string $handle Name of the stylesheet.
  197.  * @param string $list   Optional. Status of the stylesheet to check. Default 'enqueued'.
  198.  *                       Accepts 'enqueued', 'registered', 'queue', 'to_do', and 'done'.
  199.  * @return bool Whether style is queued.
  200.  */
  201. function wp_style_is( $handle, $list = 'enqueued' ) {
  202.     _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
  203.  
  204.     return (bool) wp_styles()->query( $handle, $list );
  205. }
  206.  
  207. /**
  208.  * Add metadata to a CSS stylesheet.
  209.  *
  210.  * Works only if the stylesheet has already been added.
  211.  *
  212.  * Possible values for $key and $value:
  213.  * 'conditional' string      Comments for IE 6, lte IE 7 etc.
  214.  * 'rtl'         bool|string To declare an RTL stylesheet.
  215.  * 'suffix'      string      Optional suffix, used in combination with RTL.
  216.  * 'alt'         bool        For rel="alternate stylesheet".
  217.  * 'title'       string      For preferred/alternate stylesheets.
  218.  *
  219.  * @see WP_Dependency::add_data()
  220.  *
  221.  * @since 3.6.0
  222.  *
  223.  * @param string $handle Name of the stylesheet.
  224.  * @param string $key    Name of data point for which we're storing a value.
  225.  *                       Accepts 'conditional', 'rtl' and 'suffix', 'alt' and 'title'.
  226.  * @param mixed  $value  String containing the CSS data to be added.
  227.  * @return bool True on success, false on failure.
  228.  */
  229. function wp_style_add_data( $handle, $key, $value ) {
  230.     return wp_styles()->add_data( $handle, $key, $value );
  231. }
  232.