Hyphens vs. periods in the script slug in wp_register_script?

The question:

I have seen script and style handles written in two different ways in wp_register_script and wp_enqueue_script (the same applies to wp_register_style and wp_enqueue_style):

  1. wp_register_script( 'jquery-someplugin', $location );
  2. wp_register_script( 'jquery.someplugin', $location );

#1 uses a hyphen, #2 uses a period. What is the best practice here?

Which should I be using?

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

Use hyphens only.

Take a look at wp-includes/script-loader.php:

$scripts->add( 'scriptaculous-sound', '/wp-in
$scripts->add( 'scriptaculous-controls', '/wp
$scripts->add( 'scriptaculous', '', array('sc

// not used in core, replaced by Jcrop.js
$scripts->add( 'cropper', '/wp-includes/js/cr

$scripts->add( 'jquery', '/wp-includes/js/jqu

// full jQuery UI
$scripts->add( 'jquery-ui-core', '/wp-include
$scripts->add( 'jquery-effects-core', '/wp-in

$scripts->add( 'jquery-effects-blind', '/wp-i
$scripts->add( 'jquery-effects-bounce', '/wp-
$scripts->add( 'jquery-effects-clip', '/wp-in
$scripts->add( 'jquery-effects-drop', '/wp-in
$scripts->add( 'jquery-effects-explode', '/wp
$scripts->add( 'jquery-effects-fade', '/wp-in
$scripts->add( 'jquery-effects-fold', '/wp-in
$scripts->add( 'jquery-effects-highlight', '/
$scripts->add( 'jquery-effects-pulsate', '/wp
$scripts->add( 'jquery-effects-scale', '/wp-i
$scripts->add( 'jquery-effects-shake', '/wp-i
$scripts->add( 'jquery-effects-slide', '/wp-i
$scripts->add( 'jquery-effects-transfer', '/w

$scripts->add( 'jquery-ui-accordion', '/wp-in
$scripts->add( 'jquery-ui-autocomplete', '/wp

Yes, I copied a rectangle. 🙂

The unofficial naming scheme is: main library first, then package, then sub-package, all separated by hyphens.

If you follow this scheme – and other developers too! – you lower the risk to enqueue the same library as another plugin just with another name.

Unfortunately, even in core you can find exceptions: 'suggest' and 'schedule' are using jQuery …

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment