Add hooks to WP_Widget, props ceenz, fixes #9651, see #8441

git-svn-id: https://develop.svn.wordpress.org/trunk@11095 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz 2009-04-27 10:56:29 +00:00
parent 1ebfefd191
commit 93ce9fc60b
1 changed files with 13 additions and 3 deletions

View File

@ -164,8 +164,13 @@ class WP_Widget {
$this->_set( $widget_args['number'] );
$settings = $this->get_settings();
if ( array_key_exists( $this->number, $settings ) )
$this->widget($args, $settings[$this->number]);
if ( array_key_exists( $this->number, $settings ) ) {
$settings = $settings[$this->number];
// filters the widget's settings, return false to stop displaying the widget
$settings = apply_filters('widget_display_callback', $settings, &$this);
if ( false !== $settings )
$this->widget($args, $settings);
}
}
/** Deal with changed settings.
@ -222,6 +227,8 @@ class WP_Widget {
else
$instance = $this->update($new_instance, array());
// filters the widget's settings before saving, return false to cancel saving (keep the old settings if updating)
$instance = apply_filters('widget_update_callback', $instance, $new_instance, &$this);
if ( false !== $instance )
$all_instances[$number] = $instance;
}
@ -250,7 +257,10 @@ class WP_Widget {
$instance = $all_instances[ $widget_args['number'] ];
}
return $this->form($instance);
// filters the widget admin form before displaying, return false to stop displaying it
$instance = apply_filters('widget_form_callback', $instance, &$this);
if ( false !== $instance )
$this->form($instance);
}
/** Helper function: Registers a single instance. */