diff options
Diffstat (limited to 'plugins/jetpack/modules/widget-visibility/widget-conditions.php')
-rw-r--r-- | plugins/jetpack/modules/widget-visibility/widget-conditions.php | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions.php b/plugins/jetpack/modules/widget-visibility/widget-conditions.php index 0878f56d..c6241dea 100644 --- a/plugins/jetpack/modules/widget-visibility/widget-conditions.php +++ b/plugins/jetpack/modules/widget-visibility/widget-conditions.php @@ -252,6 +252,7 @@ class Jetpack_Widget_Conditions { <?php foreach ( $conditions['rules'] as $rule ) { + $rule = wp_parse_args( $rule, array( 'major' => '', 'minor' => '', 'has_children' => '' ) ); ?> <div class="condition"> <div class="selection alignleft"> @@ -311,6 +312,10 @@ class Jetpack_Widget_Conditions { * @return array Modified settings. */ public static function widget_update( $instance, $new_instance, $old_instance ) { + if ( empty( $_POST['conditions'] ) ) { + return $instance; + } + $conditions = array(); $conditions['action'] = $_POST['conditions']['action']; $conditions['rules'] = array(); @@ -513,7 +518,8 @@ class Jetpack_Widget_Conditions { $condition_result = $wp_query->is_posts_page; } else { // $rule['minor'] is a page ID - $condition_result = is_page( $rule['minor'] ); + $condition_result = is_page() && ( $rule['minor'] == get_the_ID() ); + // Check if $rule['minor'] is parent of page ID if ( ! $condition_result && isset( $rule['has_children'] ) && $rule['has_children'] ) $condition_result = wp_get_post_parent_id( get_the_ID() ) == $rule['minor']; |