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
):
wp_register_script( 'jquery-someplugin', $location );
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