Changeset 44662
- Timestamp:
- 01/21/2019 04:26:33 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/option.php
r44463 r44662 1584 1584 $value = apply_filters( "pre_update_site_option_{$option}", $value, $old_value, $option, $network_id ); 1585 1585 1586 if ( $value === $old_value ) { 1586 /* 1587 * If the new and old values are the same, no need to update. 1588 * 1589 * Unserialized values will be adequate in most cases. If the unserialized 1590 * data differs, the (maybe) serialized data is checked to avoid 1591 * unnecessary database calls for otherwise identical object instances. 1592 * 1593 * See https://core.trac.wordpress.org/ticket/44956 1594 */ 1595 if ( $value === $old_value || maybe_serialize( $value ) === maybe_serialize( $old_value ) ) { 1587 1596 return false; 1588 1597 } -
trunk/tests/phpunit/tests/option/networkOption.php
r42834 r44662 170 170 $this->assertSame( array( 'this_does_not_exist' => true ), $cache ); 171 171 } 172 173 /** 174 * Ensure updating network options containing an object do not result in unneeded database calls. 175 * 176 * @ticket 44956 177 */ 178 public function test_update_network_option_array_with_object() { 179 $array_w_object = array( 180 'url' => 'http://src.wordpress-develop.dev/wp-content/uploads/2016/10/cropped-Blurry-Lights.jpg', 181 'meta_data' => (object) array( 182 'attachment_id' => 292, 183 'height' => 708, 184 'width' => 1260, 185 ), 186 ); 187 188 $array_w_object_2 = array( 189 'url' => 'http://src.wordpress-develop.dev/wp-content/uploads/2016/10/cropped-Blurry-Lights.jpg', 190 'meta_data' => (object) array( 191 'attachment_id' => 292, 192 'height' => 708, 193 'width' => 1260, 194 ), 195 ); 196 197 // Add the option, it did not exist before this. 198 add_network_option( null, 'array_w_object', $array_w_object ); 199 200 $num_queries_pre_update = get_num_queries(); 201 202 // Update the option using the same array with an object for the value. 203 $this->assertFalse( update_network_option( null, 'array_w_object', $array_w_object_2 ) ); 204 205 // Check that no new database queries were performed. 206 $this->assertEquals( $num_queries_pre_update, get_num_queries() ); 207 } 172 208 }
Note: See TracChangeset
for help on using the changeset viewer.