/* * 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":3470,"date":"2020-06-04T05:34:10","date_gmt":"2020-06-04T12:34:10","guid":{"rendered":"https:\/\/oldpics.net\/?p=3470"},"modified":"2020-06-17T06:58:36","modified_gmt":"2020-06-17T13:58:36","slug":"crimean-war-in-35-photos-by-roger-fenton","status":"publish","type":"post","link":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/","title":{"rendered":"Crimean war in 35 photos by Roger Fenton"},"content":{"rendered":"\n
\"British

British ships in the bay of Balaklava<\/p><\/div>\n

We featured a picture of Roger Fenton, sitting on his Photo van during the Crimean War (1853-1856) in our Photo of a day section.<\/a> We also mentioned his famous image \u2018The valley of the shadow of death\u2019 in that publication. Interestingly, we had no idea that it was a part of TOP 100 most influential photos in history<\/a> in the Time magazine list. And now the time has come to give you the better picture of Roger Fenton photo career, his short camera journey from the lawyer to the \u2018grandfather of the war photography\u2019 status.<\/span><\/p>\n

\"Roger

A Zouave. Roger Fenton, dressed in a Zouave uniform, with a rifle.<\/p><\/div>\n

Capturing the war action<\/b><\/p>\n

Nowadays, photo reporters that specialize in war action picturing, have an interesting saying: \u2018If your images aren\u2019t good enough, you\u2019re not close enough.\u2019 Well, Roger Fenton didn\u2019t have to follow this rule of thumb when he departed to the Crimean War in 1855. After all, you can allow yourself a bit milder photo action, when you are the only photographer in both armies. Take to account the gigantic camera sizes(so heavy that Fenton had to transport it a van), massive glass plate negatives (Polaroid was not an option). And now an interesting one. Fenton never photographed corpses of soldiers. The rules of the 19th photography were not settled yet, postmortems were not invented too.<\/span><\/p>\n

Roger Fenton couldn\u2019t capture real military action due to the limitations of the first camera\u2019s exposures. Actual battles were too fast. But the photographer did his best to portray the combatants, and supporting crew. He focuses mainly on those soldiers and officers who came from Britain but captured some French and Ottomans allies too.<\/span><\/p>\n

Read more:\u00a0The history of the Korean War in 34 photos<\/a><\/strong><\/p>\n

\"Officers

Officers have their rest<\/p><\/div>\n

Relying on long exposures made it impossible for Mr. His camera also caught armaments, supply facilities, minimalistic field homes, and the many, many horses: the only transport available on the Crimean peninsula. Roger traveled in a photo truck that served as his darkroom too and stayed in action until complete Russia\u2019s defeat in 1856.\u00a0<\/span><\/p>\n

Many of his negatives were lost during the transportation to London, but several hundreds of images that survived pere published in the book \u201c<\/span>Shadows of War: Roger Fenton\u2019s Photographs of the Crimea, 1855<\/span><\/a>\u201d.<\/span><\/p>\n

\"Balaklava

Balaklava view, Orthodox church destroyed with fire<\/p><\/div>\n

From lawyer to the photographer<\/b><\/p>\n

Roger Fenton had a decent career as a lawyer before the events in Crimea. Photography was just a hobby, but his camera activities led to the co-founding of the Royal British Photographic Society. Fenton specialized in the landscape images, that came in handy during the Crimean war.\u00a0<\/span><\/p>\n

Fenton supposed that his numerous portraits of the British combatants will help define British public opinion about the war. The conflict with Russia was covered by the newspapers, and images were a good addon. Notably, a trip to Crimea had its cost to Mr. Fenton: he broke several ribs in a fall and caught cholera, which could be a death sentence to many in the 19th century.<\/span><\/p>\n

\"Crimean

The valley of shadow and death, Crimean war, 1855<\/p><\/div>\n

The story of \u201cValley of the Shadow of Death\u201d<\/b><\/p>\n

Nowadays, photographers have a bag of tricks to make their action photos a bit more catchy and attractive. It seems like Mr.Fenton had some tricks too. His image \u201cValley of the Shadow of Death\u201d was the first iconic war photograph, and as experts say it had been staged.\u00a0<\/span><\/p>\n

The trick is the combination of two different images. One with cannonballs littering the road and the other with the cannonballs by the roadside. Roger traveled alone, so there\u2019s no evidence of how this picture was taken, but historians suppose that someone moved the cannonballs between exposures. If it was the Fenton, then the image would also be the first staged war photo.<\/span><\/p>\n

\"Roger

Officers of the 90th Regiment of Foot (Perthshire Volunteers) Light Infantry.<\/p><\/div>\n

Monetization issues<\/b><\/p>\n

Fenton spent almost a year in Crimea and brought the plates back to England. He organized several exhibitions across Britain, asking one shilling to see his war imagers. Fenton used to say that almost two million brits saw his works, but nonetheless he made little profit of his dangerous travel. Monetization of photography failed miserably and Roger sold his camera equipment in 1863, restarted his lawyer career.<\/span><\/p>\n

\"Railway

Railway officials, Swan, Cadell, Middleton, Howse, & Kellock.<\/p><\/div>\n

\"The

The sanitary commission. Dr. John Sutherland is sitting on table, facing right, and Robert Rawlinson, sitting on chair.<\/p><\/div>\n

\"Roger

Mortar batteries in front of Picquet house Light Division.<\/p><\/div>\n

\"Major

Major Keane, on the staff at Balaklava<\/p><\/div>\n

\"Major

Major General Sir R. Dacres, Captain Hamley & Colonel Adye.<\/p><\/div>\n

\"Lieutenant

Lieutenant General Sir Henry John W. Bentinck<\/p><\/div>\n

\"Lieutenant

Lieutenant General Sir John L. Pennefather & orderly in the uniform of 4th Light Dragoons.<\/p><\/div>\n

\"Major

Major Adolphus Burton & officers of the 5th Dragoon Guards.<\/p><\/div>\n

\"Major

Major General Sir George Buller, K.C.B.<\/p><\/div>\n

\"The

The tombs of the generals on Cathcart’s Hill: a man standing at the grave of Brigadier General Thomas Leigh Goldie, who was killed in action at the Battle of Inkerman.<\/p><\/div>\n

\"Lieutenant

Lieutenant General Sir George Brown, G.C.B.<\/p><\/div>\n

\"Lieutenant

Lieutenant General Sir George Brown G.C.B. & officers of his Light Division staff Major Hallewell, Colonel Brownrigg, orderly, Colonel Airey, Captain Pearson, Captain Markham, Captain Ponsonby.<\/p><\/div>\n

\"Commander

Commanders house in Balaklava<\/p><\/div>\n

\"Field

Field train, horse artillery. Horse team pulling a gun carriage<\/p><\/div>\n

\"Group

Group of the 47th Regiment in winter dress, ready for the trenches<\/p><\/div>\n

\"Captain

Captain Bernard, 5th Dragoon Guards, seated on a horse with V DG on bags.<\/p><\/div>\n

\"Council

Council of War held at Lord Raglan’s Head Quarters, the morning of the successful attack on the Mamelon. Lord Raglan, Mare\u0301chal Pe\u0301lissier, & Omar Pacha.<\/p><\/div>\n

\"Cornet

Cornet Henry John Wilkin, 11th Hussars.<\/p><\/div>\n

\"Captain

Captain Burnaby, Grenadier Guards.<\/p><\/div>\n

\"Captain

Captain Cuninghame, 42nd Royal Highland Regiment<\/p><\/div>\n

\"Captain

Captain King, horse artillery<\/p><\/div>\n

\"Captain

Captain Lord Balgonie, Grenadier Guards.<\/p><\/div>\n

\"Colonel

Colonel Doherty, officers & men of the 13th Light Dragoons, including Colonel Doherty, Cornet Danzil Chamberlayne, Captain Jenyns, and veterinary-surgeon Thomas Towers.<\/p><\/div>\n

\"group

Group of croats<\/p><\/div>\n

\"transportation

Transportation caravan<\/p><\/div>\n

\"Soldiers

Soldiers at the camp<\/p><\/div>\n

\"Captain

Captain Bathurst, Grenadier Guards.<\/p><\/div>\n

\"brigade

Brigade escapement<\/p><\/div>\n

\"Wounded

Wounded Zouave and Vivandiere, May 5, 1855.<\/p><\/div>\n

\"British

British soldiers with Ottaman allies<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"

We featured a picture of Roger Fenton, sitting on his Photo van during the Crimean War (1853-1856) in our Photo of a…<\/p>\n","protected":false},"author":1,"featured_media":3480,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[117,98],"yoast_head":"\nCrimean war in 35 photos by Roger Fenton - Old Pictures<\/title>\n<meta name=\"description\" content=\"The finest photos of Crimean war made by Roger Fenton, the grandfather of the war photography. A story of the lawyer who decided to capture the death\" \/>\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\/crimean-war-in-35-photos-by-roger-fenton\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Crimean war in 35 photos by Roger Fenton - Old Pictures\" \/>\n<meta property=\"og:description\" content=\"The finest photos of Crimean war made by Roger Fenton, the grandfather of the war photography. A story of the lawyer who decided to capture the death\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/\" \/>\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-06-04T12:34:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-17T13:58:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/18-lens-crimea-slide-OJRL-superJumbo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1802\" \/>\n\t<meta property=\"og:image:height\" content=\"1407\" \/>\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=\"6 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\/crimean-war-in-35-photos-by-roger-fenton\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/18-lens-crimea-slide-OJRL-superJumbo.jpg\",\"contentUrl\":\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/18-lens-crimea-slide-OJRL-superJumbo.jpg\",\"width\":1802,\"height\":1407,\"caption\":\"British ships in the bay of Balaklava\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#webpage\",\"url\":\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/\",\"name\":\"Crimean war in 35 photos by Roger Fenton - Old Pictures\",\"isPartOf\":{\"@id\":\"https:\/\/oldpics.net\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#primaryimage\"},\"datePublished\":\"2020-06-04T12:34:10+00:00\",\"dateModified\":\"2020-06-17T13:58:36+00:00\",\"author\":{\"@id\":\"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e\"},\"description\":\"The finest photos of Crimean war made by Roger Fenton, the grandfather of the war photography. A story of the lawyer who decided to capture the death\",\"breadcrumb\":{\"@id\":\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#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\":\"Crimean war in 35 photos by Roger Fenton\"}]},{\"@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":"Crimean war in 35 photos by Roger Fenton - Old Pictures","description":"The finest photos of Crimean war made by Roger Fenton, the grandfather of the war photography. A story of the lawyer who decided to capture the death","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\/crimean-war-in-35-photos-by-roger-fenton\/","og_locale":"en_US","og_type":"article","og_title":"Crimean war in 35 photos by Roger Fenton - Old Pictures","og_description":"The finest photos of Crimean war made by Roger Fenton, the grandfather of the war photography. A story of the lawyer who decided to capture the death","og_url":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/","og_site_name":"Old Pictures","article_publisher":"https:\/\/www.facebook.com\/oldpics.net\/","article_published_time":"2020-06-04T12:34:10+00:00","article_modified_time":"2020-06-17T13:58:36+00:00","og_image":[{"width":1802,"height":1407,"url":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/18-lens-crimea-slide-OJRL-superJumbo.jpg","type":"image\/jpeg"}],"twitter_card":"summary","twitter_misc":{"Written by":"Andrew Piper","Est. reading time":"6 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\/crimean-war-in-35-photos-by-roger-fenton\/#primaryimage","inLanguage":"en-US","url":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/18-lens-crimea-slide-OJRL-superJumbo.jpg","contentUrl":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/18-lens-crimea-slide-OJRL-superJumbo.jpg","width":1802,"height":1407,"caption":"British ships in the bay of Balaklava"},{"@type":"WebPage","@id":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#webpage","url":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/","name":"Crimean war in 35 photos by Roger Fenton - Old Pictures","isPartOf":{"@id":"https:\/\/oldpics.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#primaryimage"},"datePublished":"2020-06-04T12:34:10+00:00","dateModified":"2020-06-17T13:58:36+00:00","author":{"@id":"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e"},"description":"The finest photos of Crimean war made by Roger Fenton, the grandfather of the war photography. A story of the lawyer who decided to capture the death","breadcrumb":{"@id":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/oldpics.net\/crimean-war-in-35-photos-by-roger-fenton\/#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":"Crimean war in 35 photos by Roger Fenton"}]},{"@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\/3470"}],"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=3470"}],"version-history":[{"count":7,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/3470\/revisions"}],"predecessor-version":[{"id":3834,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/3470\/revisions\/3834"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/media\/3480"}],"wp:attachment":[{"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/media?parent=3470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/categories?post=3470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/tags?post=3470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}