/**
 * Equeues script
 *
 * Registers the script if src provided (does NOT overwrite) and enqueues.
 *
 * @see WP_Script::add(), WP_Script::enqueue()
*/
function wp_enqueue_script($handle, $src = false, $deps = array(), $ver = false)
{
    global $wp_scripts;
    if (!is_a($wp_scripts, 'WP_Scripts')) {
        $wp_scripts = new WP_Scripts();
    }
    if ($src) {
        $_handle = explode('?', $handle);
        $wp_scripts->add($_handle[0], $src, $deps, $ver);
    }
    $wp_scripts->enqueue($handle);
}
 /**
  * Test placing of jQuery in footer.
  *
  * @ticket 25247
  */
 function test_jquery_in_footer()
 {
     $scripts = new WP_Scripts();
     $scripts->add('jquery', false, array('jquery-core', 'jquery-migrate'));
     $scripts->add('jquery-core', '/jquery.js', array());
     $scripts->add('jquery-migrate', '/jquery-migrate.js', array());
     $scripts->enqueue('jquery');
     $jquery = $scripts->query('jquery');
     $jquery->add_data('group', 1);
     foreach ($jquery->deps as $dep) {
         $scripts->add_data($dep, 'group', 1);
     }
     $this->expectOutputRegex('/^(?:<script[^>]+><\\/script>\\n){2}$/');
     $scripts->do_items(false, 0);
     $this->assertNotContains('jquery', $scripts->done);
     $this->assertNotContains('jquery-core', $scripts->done, 'jquery-core should be in footer but is in head');
     $this->assertNotContains('jquery-migrate', $scripts->done, 'jquery-migrate should be in footer but is in head');
     $scripts->do_items(false, 1);
     $this->assertContains('jquery', $scripts->done);
     $this->assertContains('jquery-core', $scripts->done, 'jquery-core in footer');
     $this->assertContains('jquery-migrate', $scripts->done, 'jquery-migrate in footer');
 }
Exemple #3
0
function sp_plugin_enqueue_script($handle, $src = false, $deps = array(), $ver = false, $in_footer = false)
{
    global $sp_plugin_scripts;
    if (!is_a($sp_plugin_scripts, 'WP_Scripts')) {
        $sp_plugin_scripts = new WP_Scripts();
    }
    if ($src) {
        $_handle = explode('?', $handle);
        global $spDevice;
        $media = 'desktop';
        if ($spDevice == 'mobile') {
            $media = 'mobile';
        }
        if ($spDevice == 'tablet') {
            $media = 'tablet';
        }
        $sp_plugin_scripts->add($_handle[0], $src, $deps, $ver, $media);
        if ($in_footer) {
            $sp_plugin_scripts->add_data($_handle[0], 'group', 1);
        }
    }
    $sp_plugin_scripts->enqueue($handle);
}
 /**
  * Test mismatch of groups in dependencies outputs all scripts in right order.
  *
  * @ticket 35873
  */
 public function test_group_mismatch_in_deps()
 {
     $scripts = new WP_Scripts();
     $scripts->add('one', 'one', array(), 'v1', 1);
     $scripts->add('two', 'two', array('one'));
     $scripts->add('three', 'three', array('two'), 'v1', 1);
     $scripts->enqueue(array('three'));
     $this->expectOutputRegex('/^(?:<script[^>]+><\\/script>\\n){7}$/');
     $scripts->do_items(false, 0);
     $this->assertContains('one', $scripts->done);
     $this->assertContains('two', $scripts->done);
     $this->assertNotContains('three', $scripts->done);
     $scripts->do_items(false, 1);
     $this->assertContains('one', $scripts->done);
     $this->assertContains('two', $scripts->done);
     $this->assertContains('three', $scripts->done);
     $scripts = new WP_Scripts();
     $scripts->add('one', 'one', array(), 'v1', 1);
     $scripts->add('two', 'two', array('one'), 'v1', 1);
     $scripts->add('three', 'three', array('one'));
     $scripts->add('four', 'four', array('two', 'three'), 'v1', 1);
     $scripts->enqueue(array('four'));
     $scripts->do_items(false, 0);
     $this->assertContains('one', $scripts->done);
     $this->assertNotContains('two', $scripts->done);
     $this->assertContains('three', $scripts->done);
     $this->assertNotContains('four', $scripts->done);
     $scripts->do_items(false, 1);
     $this->assertContains('one', $scripts->done);
     $this->assertContains('two', $scripts->done);
     $this->assertContains('three', $scripts->done);
     $this->assertContains('four', $scripts->done);
 }
/**
 * Enqueues script.
 *
 * Registers the script if src provided (does NOT overwrite) and enqueues.
 *
 * @since r16
 * @see wp_register_script() For parameter information.
 */
function wp_enqueue_script($handle, $src = false, $deps = array(), $ver = false, $in_footer = false)
{
    global $wp_scripts;
    if (!is_a($wp_scripts, 'WP_Scripts')) {
        if (!did_action('init')) {
            _doing_it_wrong(__FUNCTION__, sprintf(__('Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.'), '<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>init</code>'), '3.3');
        }
        $wp_scripts = new WP_Scripts();
    }
    if ($src) {
        $_handle = explode('?', $handle);
        $wp_scripts->add($_handle[0], $src, $deps, $ver);
        if ($in_footer) {
            $wp_scripts->add_data($_handle[0], 'group', 1);
        }
    }
    $wp_scripts->enqueue($handle);
}
function sp_plugin_enqueue_script($handle, $src = false, $deps = array(), $ver = false, $in_footer = false)
{
    global $sp_plugin_scripts;
    if (!is_a($sp_plugin_scripts, 'WP_Scripts')) {
        $sp_plugin_scripts = new WP_Scripts();
    }
    if ($src) {
        $_handle = explode('?', $handle);
        $sp_plugin_scripts->add($_handle[0], $src, $deps, $ver);
        if ($in_footer) {
            $sp_plugin_scripts->add_data($_handle[0], 'group', 1);
        }
    }
    $sp_plugin_scripts->enqueue($handle);
}