Ninja Javascript HomeWork
<?php
/*
1. Assuming we have "jquery.flexslider-min.js" and "jquery.flexslider-loader.js" as two JavaScript files in our theme's root directory, construct the necessary WordPress action to register and enqueue both of these scripts, ensuring that "jquery.flexslider-loader.js" is enqueued and dependent on "jquery.flexslider-min.js".
*/
add_action( 'wp_enqueue_scripts', 'woo_ninja_javascript_loader' );
function woo_ninja_javascript_loader() {
wp_register_script( 'flexslider', get_stylesheet_directory_uri() . 'jquery.flexslider-min.js', array( 'jquery' ), '1.0.0', false);
wp_register_script( 'flexslider-loader', get_stylesheet_directory_uri() . 'jquery.flexslider-loader.js', array( 'jquery', 'flexslider' ), '1.0.0', false);
wp_enqueue_script( 'flexslider-loader' );
}
/*
2. Using the provided JavaScript code as a starting point ( http://pastie.org/pastes/4549538/text ), create a "common.js" file inside an "assets/js" folder within your theme. Enqueue this new JavaScript file only on pages using a conditional tag.
(We need only see the WordPress enqueue action itself... the JavaScript has been provided for testing purposes to test if your enqueue is working.)
*/
add_action( 'wp_enqueue_scripts', 'woo_ninja_javascript_loader' );
function woo_ninja_javascript_loader() {
wp_register_script( 'common', get_stylesheet_directory_uri() . '/assets/js/common.js', array( 'jquery' ), '3.0.0', false);
wp_register_script( 'flexslider', get_stylesheet_directory_uri() . 'jquery.flexslider-min.js', array( 'jquery' ), '1.0.0', false);
wp_register_script( 'flexslider-loader', get_stylesheet_directory_uri() . 'jquery.flexslider-loader.js', array( 'jquery', 'flexslider' ), '1.0.0', false);
if ( is_page() ) {
wp_enqueue_script( 'common' );
}
wp_enqueue_script( 'flexslider-loader' );
}
/*
3. Following on from the "common.js" file in question 2, send a localized string through to "common.js" and use that text in place of the existing "Back to Top" code.
(We need only see the adjusted JavaScript itself... question 2 determines whether or not the WordPress enqueue is working.)
*/
add_action( 'wp_enqueue_scripts', 'woo_ninja_javascript_loader' );
function woo_ninja_javascript_loader() {
wp_register_script( 'common', get_stylesheet_directory_uri() . '/assets/js/common.js', array( 'jquery' ), '3.0.0', false);
wp_register_script( 'flexslider', get_stylesheet_directory_uri() . 'jquery.flexslider-min.js', array( 'jquery' ), '1.0.0', false);
wp_register_script( 'flexslider-loader', get_stylesheet_directory_uri() . 'jquery.flexslider-loader.js', array( 'jquery', 'flexslider' ), '1.0.0', false);
if ( is_page() ) {
wp_enqueue_script( 'common');
}
$data = array( 'backtotop' => __( 'Back To Start', 'woothemes') );
wp_localize_script( 'common', 'wooLi8n', $data );
wp_enqueue_script( 'flexslider-loader' );
}
/*----------------------- [ Back To Top Javascript ] ----------------------*/
jQuery( document ).ready( function ( e ) {
jQuery( '<a href="#wrapper" class="back-to-top button">↑ 'var(wooL18n.backtotop);'</a>' ).appendTo( 'body' );
});
jQuery( window ).scroll( function ( e ) {
if ( 0 >= jQuery( window ).scrollTop() ) {
jQuery( 'a.back-to-top' ).fadeOut( 'slow' );
} else {
jQuery( 'a.back-to-top' ).fadeIn( 'slow' );
}
});
?>