Revision: 39694
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 19, 2011 23:51 by emilbjorklund
Initial Code
// Skeleton from https://gist.github.com/392765 class WidgetWithBehaviorScript extends WP_Widget { function __construct() { parent::__construct(__CLASS__, 'Widget with Accompanying Behavior Script', array( 'classname' => __CLASS__, 'description' => "This WordPress widget serves as a pattern for how to enqueue a script only if the widget is actually rendered." )); // Enqueue the .js script which accompanies the widget wp_enqueue_script( __CLASS__, trailingslashit(get_template_directory_uri()) . __CLASS__ . ".js", array('jquery'), // Whatever you want filemtime(trailingslashit(TEMPLATEPATH) . __CLASS__ . '.js'), true // Must be true (in_footer) ); // Schedule an action to remove the enqueued script; this action is // removed if the widget is actually rendered (if the widget() is called) add_action("wp_print_footer_scripts", array(__CLASS__, 'remove_enqueued_script')); } /** * Remove the enqueued script */ function remove_enqueued_script(){ wp_deregister_script(__CLASS__); } function widget($args, $instance) { // Abort the scheduled removal of the enqueued script because the widget is being rendered remove_action("wp_print_footer_scripts", array(__CLASS__, 'remove_enqueued_script')); extract($args, EXTR_SKIP); global $Shopp; echo $before_widget; echo $before_title; # ... echo $after_title; # ... echo $after_widget; } function update($new_instance, $old_instance) {} function form($instance){} }
Initial URL
Initial Description
Initial Title
Wordpress widget with JS/behaviour
Initial Tags
js, php, wordpress
Initial Language
PHP