/* * Plugin Name: APCu Object Cache * Description: APCu backend for the WP Object Cache. * Based on Plugin named APCu Object Cache Backend * Plugin URI: https://wordpress.org/plugins/apcu/ * Author: Pierre Schmitz * Author URI: https://pierre-schmitz.com/ * Plugin URI: https://wordpress.org/plugins/apcu/ * * * @Authors James Dugger, Jonathan Bardo * @copyright 2017 GoDaddy Inc. 14455 N. Hayden Road Scottsdale, Arizona */ $oc_logged_in = false; foreach ( $_COOKIE as $k => $v ) { if ( preg_match( '/^comment_author|wordpress_logged_in_[a-f0-9]+|woocommerce_items_in_cart|PHPSESSID_|edd_wp_session|edd_items_in_cartcc_cart_key|ccm_token/', $k ) ) { $oc_logged_in = true; break; } } $oc_blocked_page = ( defined( 'WP_ADMIN' ) || defined( 'DOING_AJAX' ) || defined( 'XMLRPC_REQUEST' ) || 'wp-login.php' === basename( $_SERVER['SCRIPT_FILENAME'] ) ); function wpaas_is_using_apcu() { return version_compare( PHP_VERSION, '5.6.0', '>=' ) && function_exists( 'apcu_fetch' ); } if ( 'cli' !== php_sapi_name() && ! $oc_logged_in && ! $oc_blocked_page && wpaas_is_using_apcu() ) : /** * Save the transients to the DB. The explanation is a bit too long * for code. The tl;dr of it is that we don't have a single 'fast cache' * source yet (like memcached) and so some long lived items like transients * are still best cached in the db and then brought back into APC * * @param string $transient * @param mixed $value * @param int $expire * @param boolean $site = false * * @return bool */ function wpaas_save_transient( $transient, $value, $expire, $site = false ) { global $wp_object_cache, $wpdb; // The 'special' transient option names $transient_timeout = ( $site ? '_site' : '' ) . '_transient_timeout_' . $transient; $transient = ( $site ? '_site' : '' ) . '_transient_' . $transient; // Cap expiration at 24 hours to avoid littering the DB if ( $expire == 0 ) { $expire = 24 * 60 * 60; } // Save to object cache $wp_object_cache->set( $transient, $value, 'options', $expire ); $wp_object_cache->set( $transient_timeout, time() + $expire, 'options', $expire ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); $alloptions[ $transient ] = $value; $alloptions[ $transient_timeout ] = time() + $expire; $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); // Use the normal update option logic if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); if ( $site && is_multisite() ) { $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->sitemeta}` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, UNIX_TIMESTAMP( NOW() ) + %d, 'yes' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient_timeout, $expire ) ); $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->sitemeta}` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, %s, 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient, maybe_serialize( $value ) ) ); } else { $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( %s, UNIX_TIMESTAMP( NOW() ) + %d, 'yes' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient_timeout, $expire ) ); $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( %s, %s, 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient, maybe_serialize( $value ) ) ); } $wpdb->suppress_errors( $flag ); } return true; } function wpaas_prune_transients() { global $wpdb; if ( ! empty( $wpdb ) && $wpdb instanceof wpdb && function_exists( 'is_main_site' ) && function_exists( 'is_main_network' ) ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); // Lifted straight from schema.php // Deletes all expired transients. // The multi-table delete syntax is used to delete the transient record from table a, // and the corresponding transient_timeout record from table b. $time = time(); $wpdb->query( "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE '\_transient\_%' AND a.option_name NOT LIKE '\_transient\_timeout\_%' AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) ) AND b.option_value < $time" ); if ( is_main_site() && is_main_network() ) { $wpdb->query( "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE '\_site\_transient\_%' AND a.option_name NOT LIKE '\_site\_transient\_timeout\_%' AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) ) AND b.option_value < $time" ); } $wpdb->suppress_errors( $flag ); } } /** * If another cache was flushed or updated, sync across all servers / processes using * the database as the authority. This uses the database as the authority for timestamps * as well to avoid drift between servers. * @return void */ function wpaas_init_sync_cache() { global $wpdb; if ( empty( $wpdb ) || ! ( $wpdb instanceof wpdb ) ) { return; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( "SELECT option_name, option_value FROM `{$wpdb->options}` WHERE option_name = 'gd_system_last_cache_flush' UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( empty( $result ) ) { return; } $master_flush = false; foreach ( $result as $row ) { switch ( $row['option_name'] ) { case 'current_time' : $current_time = $row['option_value']; break; case 'gd_system_last_cache_flush' : $master_flush = $row['option_value']; break; } } $local_flush = wp_cache_get( 'gd_system_last_cache_flush' ); if ( false === $local_flush || $local_flush < $master_flush ) { wp_cache_flush( true ); wp_cache_set( 'gd_system_last_cache_flush', $current_time ); } } /** * Start default implementation of object cache */ if ( ! defined( 'WP_APC_KEY_SALT' ) ) { define( 'WP_APC_KEY_SALT', '' ); } function wp_cache_add( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; if ( 'transient' == $group ) { wpaas_save_transient( $key, $data, $expire ); return $wp_object_cache->add( "_transient_$key", $data, 'options', $expire ); } elseif ( 'site-transient' == $group ) { wpaas_save_transient( $key, $data, $expire, true ); return $wp_object_cache->add( "_site_transient_$key", $data, 'site-options', $expire ); } else { return $wp_object_cache->add( $key, $data, $group, $expire ); } } function wp_cache_incr( $key, $n = 1, $group = '' ) { global $wp_object_cache; return $wp_object_cache->incr2( $key, $n, $group ); } function wp_cache_decr( $key, $n = 1, $group = '' ) { global $wp_object_cache; return $wp_object_cache->decr( $key, $n, $group ); } function wp_cache_close() { return true; } function wp_cache_delete( $key, $group = '' ) { global $wp_object_cache, $wpdb; if ( 'transient' == $group ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( $wpdb->prepare( "DELETE FROM `{$wpdb->prefix}options` WHERE option_name IN ( %s, %s );", "_transient_{$key}", "_transient_timeout_{$key}" ) ); $wpdb->suppress_errors( $flag ); } $wp_object_cache->delete( "_transient_timeout_$key", 'options' ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); unset( $alloptions["_transient_$key"] ); unset( $alloptions["_transient_timeout_$key"] ); $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); return $wp_object_cache->delete( "_transient_$key", 'options' ); } elseif ( 'site-transient' == $group ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $table = $wpdb->options; if ( is_multisite() ) { $table = $wpdb->sitemeta; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( $wpdb->prepare( "DELETE FROM `{$table}` WHERE option_name IN ( %s, %s );", "_transient_{$key}", "_transient_timeout_{$key}" ) ); $wpdb->suppress_errors( $flag ); } $wp_object_cache->delete( "_transient_timeout_$key", 'site-options' ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); unset( $alloptions["_site_transient_$key"] ); unset( $alloptions["_site_transient_timeout_$key"] ); $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); return $wp_object_cache->delete( "_site_transient_$key", 'site-options' ); } return $wp_object_cache->delete( $key, $group ); } function wp_cache_flush( $local_flush = false ) { global $wp_object_cache, $wpdb; if ( ! $local_flush ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( 'gd_system_last_cache_flush', UNIX_TIMESTAMP( NOW() ), 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );" ); $wpdb->suppress_errors( $flag ); } } return $wp_object_cache->flush(); } function wp_cache_get( $key, $group = '', $force = false ) { global $wp_object_cache, $wpdb; if ( 'transient' == $group ) { $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); if ( isset( $alloptions["_transient_$key"] ) && isset( $alloptions["_transient_timeout_$key"] ) && $alloptions["_transient_timeout_$key"] > time() ) { return maybe_unserialize( $alloptions["_transient_$key"] ); } $transient = $wp_object_cache->get( "_transient_$key", 'options', $force ); $timeout = $wp_object_cache->get( "_transient_timeout_$key", 'options', $force ); if ( false !== $transient && ! empty( $timeout ) && $timeout > time() ) { return maybe_unserialize( $transient ); } if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM `{$wpdb->options}` WHERE option_name IN ( %s, %s ) UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", "_transient_{$key}", "_transient_timeout_{$key}" ), ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( ! empty( $result ) ) { $transient = false; $timeout = false; $current_time = time(); foreach ( $result as $row ) { switch ( $row['option_name'] ) { case "_transient_$key" : $transient = $row['option_value']; break; case "_transient_timeout_$key" : $timeout = $row['option_value']; break; case 'current_time' : $current_time = $row['option_value']; break; } } if ( false !== $transient && ! empty( $timeout ) && $timeout > $current_time ) { return maybe_unserialize( $transient ); } } } return false; } elseif ( 'site-transient' == $group ) { $transient = $wp_object_cache->get( "_site_transient_$key", 'options', $force ); $timeout = $wp_object_cache->get( "_site_transient_timeout_$key", 'options', $force ); if ( false !== $transient && ! empty( $timeout ) && $timeout > time() ) { return maybe_unserialize( $transient ); } if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $table = $wpdb->options; if ( is_multisite() ) { $table = $wpdb->sitemeta; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM `{$table}` WHERE option_name IN ( %s, %s ) UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", "_site_transient_{$key}", "_site_transient_timeout_{$key}" ), ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( ! empty( $result ) ) { $transient = false; $timeout = false; $current_time = time(); foreach ( $result as $row ) { switch ( $row['option_name'] ) { case "_site_transient_$key" : $transient = $row['option_value']; break; case "_site_transient_timeout_$key" : $timeout = $row['option_value']; break; case 'current_time' : $current_time = $row['option_value']; break; } } if ( false !== $transient && ! empty( $timeout ) && $timeout > $current_time ) { return maybe_unserialize( $transient ); } } } return false; } else { return $wp_object_cache->get( $key, $group, $force ); } } function wp_cache_init() { global $wp_object_cache; if ( mt_rand( 1, 100 ) == 42 ) { wpaas_prune_transients(); } add_action( 'muplugins_loaded', 'wpaas_init_sync_cache' ); $wp_object_cache = new APCu_Object_Cache(); } function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; return $wp_object_cache->replace( $key, $data, $group, $expire ); } function wp_cache_set( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; if ( defined( 'WP_INSTALLING' ) == false ) { if ( 'transient' == $group ) { return wpaas_save_transient( $key, $data, $expire ); } elseif ( 'site-transient' == $group ) { return wpaas_save_transient( $key, $data, $expire, true ); } else { return $wp_object_cache->set( $key, $data, $group, $expire ); } } else { return $wp_object_cache->delete( $key, $group ); } } function wp_cache_switch_to_blog( $blog_id ) { global $wp_object_cache; return $wp_object_cache->switch_to_blog( $blog_id ); } function wp_cache_add_global_groups( $groups ) { global $wp_object_cache; $wp_object_cache->add_global_groups( $groups ); } function wp_cache_add_non_persistent_groups( $groups ) { global $wp_object_cache; $wp_object_cache->add_non_persistent_groups( $groups ); } class GD_APCu_Object_Cache { private $prefix = ''; private $local_cache = array(); private $global_groups = array(); private $non_persistent_groups = array(); private $multisite = false; private $blog_prefix = ''; public function __construct() { global $table_prefix; $this->multisite = is_multisite(); $this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : ''; $this->prefix = DB_HOST . '.' . DB_NAME . '.' . $table_prefix; } private function get_group( $group ) { return empty( $group ) ? 'default' : $group; } private function get_key( $group, $key ) { if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) { return $this->prefix . '.' . $group . '.' . $this->blog_prefix . ':' . $key; } else { return $this->prefix . '.' . $group . '.' . $key; } } public function add( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( function_exists( 'wp_suspend_cache_addition' ) && wp_suspend_cache_addition() ) { return false; } if ( isset( $this->local_cache[ $group ][ $key ] ) ) { return false; } // FIXME: Somehow apcu_add does not return false if key already exists if ( ! isset( $this->non_persistent_groups[ $group ] ) && apcu_exists( $key ) ) { return false; } if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_add( $key, $data, (int) $expire ); } return true; } public function add_global_groups( $groups ) { if ( is_array( $groups ) ) { foreach ( $groups as $group ) { $this->global_groups[ $group ] = true; } } else { $this->global_groups[ $groups ] = true; } } public function add_non_persistent_groups( $groups ) { if ( is_array( $groups ) ) { foreach ( $groups as $group ) { $this->non_persistent_groups[ $group ] = true; } } else { $this->non_persistent_groups[ $groups ] = true; } } public function decr( $key, $offset = 1, $group = 'default' ) { if ( $offset < 0 ) { return $this->incr( $key, abs( $offset ), $group ); } $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->local_cache[ $group ][ $key ] ) && $this->local_cache[ $group ][ $key ] - $offset >= 0 ) { $this->local_cache[ $group ][ $key ] -= $offset; } else { $this->local_cache[ $group ][ $key ] = 0; } if ( isset( $this->non_persistent_groups[ $group ] ) ) { return $this->local_cache[ $group ][ $key ]; } else { $value = apcu_dec( $key, $offset ); if ( $value < 0 ) { apcu_store( $key, 0 ); return 0; } return $value; } } public function delete( $key, $group = 'default', $force = false ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); unset( $this->local_cache[ $group ][ $key ] ); if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_delete( $key ); } return true; } public function flush() { $this->local_cache = array(); // TODO: only clear our own entries apcu_clear_cache(); return true; } public function get( $key, $group = 'default', $force = false, &$found = null ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( ! $force && isset( $this->local_cache[ $group ][ $key ] ) ) { $found = true; if ( is_object( $this->local_cache[ $group ][ $key ] ) ) { return clone $this->local_cache[ $group ][ $key ]; } else { return $this->local_cache[ $group ][ $key ]; } } elseif ( isset( $this->non_persistent_groups[ $group ] ) ) { $found = false; return false; } else { $value = @apcu_fetch( $key, $found ); if ( $found ) { if ( $force ) { $this->local_cache[ $group ][ $key ] = $value; } return $value; } else { return false; } } } public function incr2( $key, $offset = 1, $group = 'default' ) { if ( $offset < 0 ) { return $this->decr( $key, abs( $offset ), $group ); } $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->local_cache[ $group ][ $key ] ) && $this->local_cache[ $group ][ $key ] + $offset >= 0 ) { $this->local_cache[ $group ][ $key ] += $offset; } else { $this->local_cache[ $group ][ $key ] = 0; } if ( isset( $this->non_persistent_groups[ $group ] ) ) { return $this->local_cache[ $group ][ $key ]; } else if ( function_exists( 'apcu_inc' ) ) { $value = apcu_inc( $key, $offset ); if ( $value < 0 ) { apcu_store( $key, 0 ); return 0; } return $value; } return false; } public function replace( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->non_persistent_groups[ $group ] ) ) { if ( ! isset( $this->local_cache[ $group ][ $key ] ) ) { return false; } } else { if ( ! isset( $this->local_cache[ $group ][ $key ] ) && ! apcu_exists( $key ) ) { return false; } apcu_store( $key, $data, (int) $expire ); } if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } return true; } public function reset() { // This function is deprecated as of WordPress 3.5 // Be safe and flush the cache if this function is still used $this->flush(); } public function set( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_store( $key, $data, (int) $expire ); } return true; } public function stats() { // Only implemented because the default cache class provides this. // This method is never called. echo ''; } public function switch_to_blog( $blog_id ) { $this->blog_prefix = $this->multisite ? $blog_id . ':' : ''; } } if ( function_exists( 'apcu_inc' ) ) { class APCu_Object_Cache extends GD_APCu_Object_Cache { function incr( $key, $offset = 1, $group = 'default' ) { return parent::incr2( $key, $offset, $group ); } } } else { class APCu_Object_Cache extends GD_APCu_Object_Cache { // Blank } } endif;
Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713
{"id":5355,"date":"2020-09-21T09:56:50","date_gmt":"2020-09-21T07:56:50","guid":{"rendered":"https:\/\/oldpics.net\/?p=5355"},"modified":"2020-09-29T16:40:30","modified_gmt":"2020-09-29T14:40:30","slug":"10-most-expensive-photographs-in-history","status":"publish","type":"post","link":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/","title":{"rendered":"10 most expensive photographs in history"},"content":{"rendered":"\n

\"mostThe most expensive photographs list is very different from The most important pictures<\/a>, or even from Pulitzer Prize photos<\/a>. Almost all of these images are excellent samples of world-class photography. But there\u2019s no obvious reason for paying this much for some of them. Not all of these most expensive photographs are exactly old. And we at Oldpics<\/strong> are strictly avoiding pictures that younger than 1995. Well, it\u2019s a shame, but sometimes we are forced to publish some fresh images from 2011 when they come in a mix list with pictures from 1880. Sorry for this.<\/span><\/p>\n

Read more:\u00a050 amazing and bizarre photos\u00a0<\/a><\/h3>\n


\"Dovima“Dovima and elephants.”<\/h4>\n

Photographer: Richard Avedon<\/span><\/h4>\n

Year: 1955<\/span><\/h4>\n

Sold for $1,151,976<\/span><\/h4>\n

What’s Going On in This Picture: The famous American photographer Richard Avedon masterfully cooperated with the best models. Actually, anyone could be his model. Avedon had some excellent pictures of the miners, politicians, and movie stars. And this photo is an example of the highest level of aesthetics that Avedon managed to achieve in fashion photography. <\/span><\/p>\n

The top model of the 1950s Dovima poses for the photographer in a Christian Dior dress, surrounded by select, stylish, young elephants. The shoot was in Paris, of course. Well, if there\u2019s a place for a fashion photo among the most expensive photographs, then it should be Richard Avedon.<\/a> This photo is among others in the Top 100 most important pictures in history.<\/a><\/span><\/p>\n

\"Untitled<\/p>\n

“Cowboy”<\/h4>\n

Photographer: Richard Prinze<\/span><\/h4>\n

Year: 1989<\/span><\/h4>\n

Sold for $ 1,248,000<\/span><\/h4>\n

What’s Going On in This Picture:\u00a0 Well, it\u2019s an interesting one! The fact is that “Cowboy,” strictly speaking, is not an author’s photograph. American artist Richard Prince only photographed a fragment of an old Marlboro advertisement from a magazine. But, as you can see, there was a buyer for such a sample of contemporary art. Well, it was a generous buyer. This shot also hit the Top 100 most important pictures in history<\/a> for its pop culture value.<\/span><\/p>\n

\"Hands“Hands”<\/h4>\n

Photographer: Alfred Stiglitz<\/span><\/h4>\n

Year: 1919<\/span><\/h4>\n

Sold for $ 1,470,000<\/span><\/h4>\n

What’s Going On in This Picture:\u00a0 The love affair between photographer Alfred Stiglitz and artist Georgia O’Keeffe became one of the most fruitful and picturesque alliances of the 20th century. Stiglitz regularly photographed his muse, O’Keeffe. In many cases, she was nude. But the frame that immortalized the artist’s sensual hands was monetized at the top level. For those interested, here\u2019s our publication about their love story and the best photos by maestro Stiglitz<\/a>.<\/span><\/p>\n

\"BillyBilly, the Kid<\/h4>\n

Photographer: unknown<\/strong><\/h4>\n

Year: 1879 or 1880<\/strong><\/h4>\n

Sold for $ 2,300,000<\/strong><\/h4>\n

What’s Going On in This Picture:\u00a0 American criminal Billy the Kid committed his first crime at 18. His life was bright and short, as the sheriff shot him at the age of 21. During this short time, Billy managed to make a career as a cult criminal. His dead shot record had more than twenty souls, and he was a symbol of the Wild West. This photo is the oldest one among the most expensive photographs.<\/span><\/p>\n

This picture was believed to be the only image of Billy the Kid. Recently researches found a second picture in which Billy and his gang members play croquet.<\/span><\/p>\n

\"Untitled.<\/h4>\n

“Untitled. # 153 “<\/h4>\n

Photographer: Cindy Sherman<\/span><\/h4>\n

Year: 1985<\/span><\/h4>\n

Sold for $ 2,700,000<\/span><\/h4>\n

What’s Going On in This Picture:\u00a0 One of the most famous artists globally, Cindy Sherman, always preferred staged photography. Her photos turn American pop culture inside out, making it unsettling and frightening. Cindy prefers “Untitled” to all names, giving such a basic character with only a serial number.<\/span><\/p>\n

\"Moonlight-“Pond. Moonlight”<\/h4>\n

Photographer: Edward Steichen<\/span><\/h4>\n

Year: 1904<\/span><\/h4>\n

Sold for $ 2,928,000<\/span><\/h4>\n

What’s Going On in This Picture: Here is a story of the impressionist artist who decided to retrain as a photographer. In general, Edward Steichen\u2019s professional career was impressive. The photographer taught the basics of aerial photography to soldiers during WWI. He created several portraits of movie stars in the 1920s, and those images\u2019 technique still helps to teach photo students nowadays. But on our list was Steichen’s landscape.\u00a0<\/span><\/p>\n

It\u2019s one of the first autochrome technique experiments in photo history. “Pond. Moonlight” is also a fine sample of pictorial photography, and it hit the Top 100 most important images in history.<\/a><\/span><\/p>\n

You make like this collection of Leonard Misonne<\/a>, founder of pictorial photography.<\/span><\/p>\n

\"Conversation<\/p>\n

“Conversation of the Fallen Soldiers”<\/h4>\n

Photographer: Jeff Wall<\/span><\/h4>\n

Year: 1992<\/span><\/h4>\n

Sold for $ 3,665,500<\/span><\/h4>\n

What’s Going On in This Picture:\u00a0 Jeff Wall always specialized in creating staged photographs that look like Pulitzer News shots. He took this photo far away from the real trenches. Real events inspired Jeff Wall in Afghanistan, and here\u2019s a story. Soviet soldiers were killed by the explosion but resurrected and looking around their mutilated bodies. By the way, this photo Russians didn\u2019t allow this photo to participate in the exhibition as it was politically unreliable.<\/span><\/p>\n

\"Untitled.“Untitled. # 96 “<\/h4>\n

Photographer: Cindy Sherman<\/span><\/h4>\n

Year: 1981<\/span><\/h4>\n

Sold for $ 3,890,500<\/span><\/h4>\n

What’s Going On in This Picture:\u00a0 Oh, and here’s another work by Cindy Sherman! At number 96. Please note on the Untitled series occupies a place in the Top 100 list<\/a>. Ironically, the most important image by Sherman is not among the most expensive photographs.<\/span><\/p>\n

Here are some more amazing photographs by Cindy Sherman.<\/a><\/span><\/p>\n

\"Rhine<\/p>\n

“Rhine II”<\/h4>\n

Photographer: Andreas Gursky<\/span><\/h4>\n

Year: 1999<\/span><\/h4>\n

Sold for $ 4,338,500<\/span><\/h4>\n

What’s Going On in This Picture: Here it is, the most expensive photo in the world! You may be surprised, amazed, and outraged. Now you will be surprised, amazed and indignant even more: photographer Andreas Gursky photoshopped this photo. He removed unnecessary elements that, in his opinion, ruined the harmonious appearance of the river.\u00a0<\/span><\/p>\n

He removed the port facilities and a power station in the background and a dog breeder with a dog in the foreground. \u201cParadoxically, I couldn\u2019t capture this view of the Rhine, and refinement was necessary to provide an accurate image of the modern river,\u201d Gursky explained in an interview. But he can’t convince us. We still think it would be more fun with a power plant and a dog!<\/span><\/p>\n

\"Ghost“Ghost”<\/h4>\n

Photographer: Peter Lick<\/span><\/h4>\n

Year: 2011<\/span><\/h4>\n

Sold for $ 6,500,000<\/span><\/h4>\n

What’s Going On in This Picture: There is also a color version of this photo, but it was the monochrome version sold at the auction. The picture was taken in Antelope Canyon in northern Arizona. This cave is a godsend for photographers. The dust hovering in the rays of light creates wondrous silhouettes that, at the moment, resembles a real ghost. Photographer Peter Leek is Australian, but his work can be found in personal collections of the American presidents to the Rolling Stones band members.<\/span><\/p>\n

\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"

The most expensive photographs list is very different from The most important pictures, or even from Pulitzer Prize photos. Almost all of…<\/p>\n","protected":false},"author":1,"featured_media":5365,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[187,1],"tags":[28,136,95],"yoast_head":"\n10 most expensive photographs in history - Old Pictures<\/title>\n<meta name=\"description\" content=\"There are a lot of amazing photographs in the world but these ten are both brilliant and the most expensive.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"10 most expensive photographs in history - Old Pictures\" \/>\n<meta property=\"og:description\" content=\"There are a lot of amazing photographs in the world but these ten are both brilliant and the most expensive.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/\" \/>\n<meta property=\"og:site_name\" content=\"Old Pictures\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/oldpics.net\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-21T07:56:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-29T14:40:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/09\/most-expensive-photographs-in-history.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrew Piper\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/oldpics.net\/#website\",\"url\":\"https:\/\/oldpics.net\/\",\"name\":\"Old Pictures\",\"description\":\"Historical photos, stories and even more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/oldpics.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/09\/most-expensive-photographs-in-history.jpg\",\"contentUrl\":\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/09\/most-expensive-photographs-in-history.jpg\",\"width\":1200,\"height\":900,\"caption\":\"most expensive photographs in history\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#webpage\",\"url\":\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/\",\"name\":\"10 most expensive photographs in history - Old Pictures\",\"isPartOf\":{\"@id\":\"https:\/\/oldpics.net\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#primaryimage\"},\"datePublished\":\"2020-09-21T07:56:50+00:00\",\"dateModified\":\"2020-09-29T14:40:30+00:00\",\"author\":{\"@id\":\"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e\"},\"description\":\"There are a lot of amazing photographs in the world but these ten are both brilliant and the most expensive.\",\"breadcrumb\":{\"@id\":\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/oldpics.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"10 most expensive photographs in history\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e\",\"name\":\"Andrew Piper\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/oldpics.net\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/34ef47a4a9a25f9408f24cd33f7d135e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/34ef47a4a9a25f9408f24cd33f7d135e?s=96&d=mm&r=g\",\"caption\":\"Andrew Piper\"},\"url\":\"https:\/\/oldpics.net\/author\/andrew\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"10 most expensive photographs in history - Old Pictures","description":"There are a lot of amazing photographs in the world but these ten are both brilliant and the most expensive.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/","og_locale":"en_US","og_type":"article","og_title":"10 most expensive photographs in history - Old Pictures","og_description":"There are a lot of amazing photographs in the world but these ten are both brilliant and the most expensive.","og_url":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/","og_site_name":"Old Pictures","article_publisher":"https:\/\/www.facebook.com\/oldpics.net\/","article_published_time":"2020-09-21T07:56:50+00:00","article_modified_time":"2020-09-29T14:40:30+00:00","og_image":[{"width":1200,"height":900,"url":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/09\/most-expensive-photographs-in-history.jpg","type":"image\/jpeg"}],"twitter_card":"summary","twitter_misc":{"Written by":"Andrew Piper","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/oldpics.net\/#website","url":"https:\/\/oldpics.net\/","name":"Old Pictures","description":"Historical photos, stories and even more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/oldpics.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#primaryimage","inLanguage":"en-US","url":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/09\/most-expensive-photographs-in-history.jpg","contentUrl":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/09\/most-expensive-photographs-in-history.jpg","width":1200,"height":900,"caption":"most expensive photographs in history"},{"@type":"WebPage","@id":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#webpage","url":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/","name":"10 most expensive photographs in history - Old Pictures","isPartOf":{"@id":"https:\/\/oldpics.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#primaryimage"},"datePublished":"2020-09-21T07:56:50+00:00","dateModified":"2020-09-29T14:40:30+00:00","author":{"@id":"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e"},"description":"There are a lot of amazing photographs in the world but these ten are both brilliant and the most expensive.","breadcrumb":{"@id":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/oldpics.net\/10-most-expensive-photographs-in-history\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/oldpics.net\/"},{"@type":"ListItem","position":2,"name":"10 most expensive photographs in history"}]},{"@type":"Person","@id":"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e","name":"Andrew Piper","image":{"@type":"ImageObject","@id":"https:\/\/oldpics.net\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/34ef47a4a9a25f9408f24cd33f7d135e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/34ef47a4a9a25f9408f24cd33f7d135e?s=96&d=mm&r=g","caption":"Andrew Piper"},"url":"https:\/\/oldpics.net\/author\/andrew\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/5355"}],"collection":[{"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/comments?post=5355"}],"version-history":[{"count":4,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/5355\/revisions"}],"predecessor-version":[{"id":5909,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/5355\/revisions\/5909"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/media\/5365"}],"wp:attachment":[{"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/media?parent=5355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/categories?post=5355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/tags?post=5355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}