wp_register_style( string $handle, string|false $src, string[] $deps = array(), string|bool|null $ver = false, string $media = ‘all’ ): bool

Registers a CSS stylesheet.


See also


Name of the stylesheet. Should be unique.
Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
If source is set to false, stylesheet is an alias of other stylesheets it depends on.
An array of registered stylesheet handles this stylesheet depends on.


String specifying stylesheet version number, if it has one, which is added to the URL as a query string for cache busting purposes. If version is set to false, a version number is automatically added equal to current installed WordPress version.
If set to null, no version is added.


The media for which this stylesheet has been defined.
Default 'all'. Accepts media types like 'all', 'print' and 'screen', or media queries like ‘(orientation: portrait)’ and ‘(max-width: 640px)’.



bool Whether the style has been registered. True on success, false on failure.


function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
	_wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );

	return wp_styles()->add( $handle, $src, $deps, $ver, $media );


4.3.0A return value was added.

User Contributed Notes

  1. Skip to note 4 content

    In a Plugin (outside a PHP class)

    Assumes the Plugin directory is named ‘my-plugin’.
    Assumes the Plugin style sheet is named ‘plugin.css’.

     * Registers a stylesheet.
    function wpdocs_register_plugin_styles() {
    	wp_register_style( 'my-plugin', plugins_url( 'my-plugin/css/plugin.css' ) );
    	wp_enqueue_style( 'my-plugin' );
    // Register style sheet.
    add_action( 'wp_enqueue_scripts', 'wpdocs_register_plugin_styles' );
  2. Skip to note 5 content

    In a plugin (inside a PHP class)

    Assumes the Plugin class name is ‘my_plugin’.
    Assumes the Plugin directory is named ‘my-plugin’.
    Assumes the Plugin style sheet is named ‘plugin.css’.

    class WPDocs_My_Plugin_Stylesheet {
    	 * Constructor.
    	function __construct() {
    		// Register stylesheet.
    		add_action( 'wp_enqueue_scripts', array( $this, 'register_plugin_styles' ) );
    	 * Registers and enqueues stylesheet.
    	public function register_plugin_styles() {
    		wp_register_style( 'my-plugin', plugins_url( 'my-plugin/css/plugin.css' ) );
    		wp_enqueue_style( 'my-plugin' );
    new WPDocs_My_Plugin_Stylesheet();
  3. Skip to note 6 content

    Note that Google Fonts has changed their URLs, so when embedding multiple font families only one will be loaded. The change is “fundamentally incompatible with how the rest of the world uses query variables and thus PHP itself”.

    The fix is to set null on the $version parameter, which prevents the URL from being parsed and the additional font families lost.

    Trac ticket: https://core.trac.wordpress.org/ticket/49742

You must log in before being able to contribute a note or feedback.