javascript in wordpress (ocwp march 2012)

18
Weaving JavaScript -- in and out of -- WordPress Orange County WordPress Developer’s Meetup March 2012

Upload: jeffrey-zinn

Post on 15-May-2015

690 views

Category:

Technology


2 download

DESCRIPTION

Short presentation on how to include and remove JavaScript files from your themes and plugins as well as pushing PHP variables into your JavaScript files.

TRANSCRIPT

Page 1: JavaScript in WordPress (OCWP March 2012)

Weaving JavaScript-- in and out of --

WordPressOrange County WordPress Developer’s Meetup March 2012

Page 2: JavaScript in WordPress (OCWP March 2012)

Topics

• Register and Enqueue Scripts

• Available JavaScript Libraries

• Tap into available CDNs

• Localize Script

Page 3: JavaScript in WordPress (OCWP March 2012)

Functions

• wp_register_script() - get ready to use a script (but don’t load it up just yet)

• wp_deregister_script() - remove a registered script

• wp_enqueue_script() - load that script into my theme so I can use it

• wp_dequeue_script() - remove an enqueued script

Page 4: JavaScript in WordPress (OCWP March 2012)

wp_register_script()

Description:Safe way of registring javascripts in WordPress for later use with wp_enqueue_script().

Usage:<?php 

wp_register_script ( $handle, $src, $deps, $ver, $in_footer ); 

?>

Page 5: JavaScript in WordPress (OCWP March 2012)

The Process1. Use the wp_enqueue_scripts action to

load in your selected javascripts

2. Stage a script by calling the wp_register_script function

3. Load the script from #2 using the wp_enqueue_script function

Generally on functions.php, but could be elsewhere in your theme or plugin code.

Page 6: JavaScript in WordPress (OCWP March 2012)

Example 1What are we even doing:Load a custom javascript called custom.js from my theme’s /js folder into the theme.

load me

Page 7: JavaScript in WordPress (OCWP March 2012)

Example 1What are we even doing:Load a custom javascript called custom.js from my theme’s /js folder into the theme.

<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() { $src = get_stylesheet_directory_uri() . '/js/custom.js' ; wp_register_script( 'custom-script', $src, array('jquery'), '1', TRUE );

wp_enqueue_script( 'custom-script' );}

?> 

Page 8: JavaScript in WordPress (OCWP March 2012)

Example 2What are we even doing:Load custom.js conditionally for pages only.<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() { $src = get_stylesheet_directory_uri() . '/js/custom.js' ; wp_register_script( 'custom-script', $src, array('jquery'), '1', TRUE );

if ( is_page() ) wp_enqueue_script( 'custom-script' );}

?> 

Page 9: JavaScript in WordPress (OCWP March 2012)

Available Libraries

http://codex.wordpress.org/Function_Reference/wp_enqueue_script#Default_scripts_included_with_WordPress

Script HandleScriptaculous Root scriptaculous-root

SWFUpload swfuploadjQuery UI Core jquery-ui-core

jQuery UI Accordion jquery-ui-accordionjQuery UI Datepicker jquery-ui-datepicker

ThickBox thickboxjQuery Hotkeys jquery-hotkeys

...plus 64 other scripts

Page 10: JavaScript in WordPress (OCWP March 2012)

Example 3What are we even doing:Load swfupload and thickbox which are pre-registered!

<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

wp_enqueue_script( 'swfupload' );wp_enqueue_script( 'thickbox' );

}

?> 

Page 11: JavaScript in WordPress (OCWP March 2012)

Example 4What are we even doing:Load jquery from an external source.

<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

wp_deregister_script( 'jquery' );

$src = ‘http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’;wp_register_script( 'jquery', $src, array(), '1.7.1');

wp_enqueue_script( 'jquery' );}

?> 

Page 12: JavaScript in WordPress (OCWP March 2012)

Example 4What are we even doing:Load jquery from an external source.

Keep handle the same for dependencies

<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

wp_deregister_script( 'jquery' );

$src = ‘http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’;wp_register_script( 'jquery', $src, array(), '1.7.1');

wp_enqueue_script( 'jquery' );}

?> 

Page 13: JavaScript in WordPress (OCWP March 2012)

Example 4What are we even doing:Load jquery from an external source.

<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

wp_deregister_script( 'jquery' );

$src = ‘http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’;wp_register_script( 'jquery', $src, array(), '1.7.1');

wp_enqueue_script( 'jquery' );}

?> 

Be careful of version #

Page 14: JavaScript in WordPress (OCWP March 2012)

wp_localize_script()

Description:Send PHP data into the JavaScript data world.

Usage:<?php 

wp_localize_script( $handle, $object_name, $l10n ); 

?>

Page 15: JavaScript in WordPress (OCWP March 2012)

Example 5What are we even doing:Prepare PHP variables for use in custom.js.<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

$src = get_stylesheet_directory_uri() . '/js/custom.js' ;wp_register_script( 'custom-script', $src, array('jquery'), '1', TRUE );

wp_enqueue_script( 'custom-script' );

$data = array( 'user_id' => $uid, 'fname' => $first_name  );wp_localize_script( 'custom-script', 'user_info', $data );

}

?> 

Page 16: JavaScript in WordPress (OCWP March 2012)

Example 5What are we even doing:Prepare PHP variables for use in custom.js.<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

$src = get_stylesheet_directory_uri() . '/js/custom.js' ;wp_register_script( 'custom-script', $src, array('jquery'), '1', TRUE );

wp_enqueue_script( 'custom-script' );

$data = array( 'gravatar' => $gravatar, 'user_id' => $uid  );wp_localize_script( 'custom-script', 'user_info', $data );

}

?> 

$data = array( 'user_id' => $uid, 'fname’ => $first_name  );wp_localize_script( 'custom-script', 'user_info', $data );

<script type=”text/javascript”>

alert(“Hey, “ + user_info.fname); 

</script>

Page 17: JavaScript in WordPress (OCWP March 2012)

Example 6<?php /** JavaScripts **/add_action( 'wp_enqueue_scripts', 'custom_enqueue_scripts' );function custom_enqueue_scripts() {

// Load jQuery from Google APIswp_deregister_script( 'jquery' );$src = ‘http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’;wp_register_script( 'jquery', $src, array(), '1.7.1');wp_enqueue_script( 'jquery' );

// Load my custom javascript file and send info$src = get_stylesheet_directory_uri() . '/js/custom.js' ;wp_register_script( 'custom-script', $src, array('jquery'), '1', TRUE );if ( is_page() ) :

wp_enqueue_script( 'custom-script' );$data = array( 'fname' => ‘Jeff’, 'lname' => ‘Zinn’  );wp_localize_script( 'custom-script', 'user_info', $data );

endif;

}

?> 

Page 18: JavaScript in WordPress (OCWP March 2012)

Questions?