/* * 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":4045,"date":"2020-06-30T15:31:05","date_gmt":"2020-06-30T13:31:05","guid":{"rendered":"https:\/\/oldpics.net\/?p=4045"},"modified":"2020-09-23T15:16:12","modified_gmt":"2020-09-23T13:16:12","slug":"postwar-new-york-in-65-unforgettable-vintage-pictures","status":"publish","type":"post","link":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/","title":{"rendered":"Postwar New York in 65 unforgettable vintage pictures"},"content":{"rendered":"\n

New York became home-city to many extraordinary photographers who shared love with their home with magnificent pictures. Oldpics<\/strong> selected 65 bright pictures of postwar street life that represent the spirit of the New York of the 1950s and 1960s.<\/span><\/p>\n

In total, this set features postwar New York pictures by David Attie, Anthony Barboza, Donald Blumberg, Esther Bubley, Jeanne Ebstel, Bedrich Grunzweig, Simpson Kalisher, Jan Lukas, Benn Mitchell, Fritz Neugass, Beuford Smith, W. Eugene Smith<\/a>, Todd Webb, and Weegee<\/a>.<\/span><\/p>\n

Some of these postwar New York pictures keep the identity bits of their authors; some just share their warm feelings in the city. The distortion technique added much to the still recognizable pictures of the Flatiron Building and Times Square. Some of the photographers explored new photo approaches, reshaping their photo concepts through in-camera or darkroom manipulation.<\/span><\/p>\n

Todd Webb, Bedrich Grunzweig, and Eugene Smith captured the city scenes from the top-floor positions. Before taking his postwar New York pictures W Eugene Smith had just accomplished his Pittsburgh series<\/a>. Smith\u2019s images belong to his voyeuristic zaps series of the everyday routine outside his famous loft window. Random pedestrians try to navigate icy sidewalks as the cameraman witnessed and captured from above.\u00a0<\/span><\/p>\n

Some photographers transferred their camera focus from Manhattan\u2019s architectural masterpieces to the human-centric scenes in Brooklyn and Harlem. In Beuford Smith\u2019s Palm Sunday, a young girl wearing a cross is seated in a packed subway car with her eyes closed, seeming to find her zen in the heart of the chaos. With a snapshot aesthetic, Jeanne Ebstel stilled the pure joy of city kids wearing swimsuits on the street, cooling off with water flowing from out of the frame. Weegee\u2019s candid portraits shine a light, quite literally, on dark scenes featuring stardom such as Marilyn Monroe and James Dean. Conversely, Simpson Kalisher\u2019s midday street images catch anonymous people and groups going about their routine.<\/span><\/p>\n

Donald Blumberg produced a series of impromptu portraits that shift his subjects from space and time: only their heads are visible, with the majority of the frame filled only with darkness. Jason Farago wrote about the series for the New York Times: \u201cFor his engaging series \u201cIn Front of Saint Patrick\u2019s Cathedral,\u201d produced between 1965 to 1967, he would turn his camera, sometimes as much as 45 degrees off-center, and apply long exposure times to blackout the cathedral interior. The result was to exclude all context, and to turn the worshipers into highly detailed, if physically embarrassing, parts in the void.\u201d<\/span><\/p>\n

\"Donald

Donald Blumberg, In Front of St. Patrick’s Cathedral, 1965<\/p><\/div>\n

\"Weegee,

Weegee, Marilyn at the Circus, c. 1955<\/p><\/div>\n

\"Weegee,

Weegee, James Dean in Greenwich Village, c. 1955<\/p><\/div>\n

\"W.

W. Eugene Smith, As From My Window I Sometimes Glance, \u200b1957<\/p><\/div>\n

\"W.

W. Eugene Smith, As From My Window I Sometimes Glance, \u200b1957\u20131958<\/p><\/div>\n

\"W.

W. Eugene Smith, As From My Window I Sometimes Glance, 1957\u20131958<\/p><\/div>\n

\"W.

W. Eugene Smith, As From My Window I Sometimes Glance, 1957<\/p><\/div>\n

\"Todd

Todd Webb, Shops at Sixth Avenue near Rockefeller Center, 1947<\/p><\/div>\n

\"Todd

Todd Webb, Corner of 6th Avenue & 47th Street, with Rockefeller Center building in the background, 1948<\/p><\/div>\n

\"Time

Time Square traffic<\/p><\/div>\n

\"Peter

Peter Jingeleski, The day the Earth stood still<\/p><\/div>\n

\"Jeanne

Jeanne Ebstel, Untitled, c. 1949<\/p><\/div>\n

\"Jeanne

Jeanne Ebstel, Untitled, c. 1946<\/p><\/div>\n

\"Herald

Herald Square Distortion, by Weegee, c. 1950<\/p><\/div>\n

\"Esther

Esther Bubley, On South Street at noontime, 1946<\/p><\/div>\n

\"David

David Attie, Flatiron Building, c. 1955<\/p><\/div>\n

\"Beuford

Beuford Smith, Palm Sunday<\/p><\/div>\n

\"Donald

Donald Blumberg, In Front of St. Patrick’s Cathedral<\/p><\/div>\n

\"Beuford

Beuford Smith, Flag Day, Harlem, 1976<\/p><\/div>\n

\"Benn

Benn Mitchell, Times Square 42nd Street, New York City, 1952<\/p><\/div>\n

\"Bedrich

Bedrich Grunzweig, NYC, 1948<\/p><\/div>\n

\"Bedrich

Bedrich Grunzweig, April Shower, 1951<\/p><\/div>\n

\"Bank

Bank of New York, 1959 by Simpson Kalisher<\/p><\/div>\n

\"Anthony

Anthony Barboza, NYC, the 1970s<\/p><\/div>\n

\"Anthony

Anthony Barboza, Cactus & Shadows<\/p><\/div>\n

\"'Summer

‘Summer in Brooklyn,’ by Jeanne Ebstel, c. 1947<\/p><\/div>\n

\"Weegee,

Weegee, Washington Square Park, c. 1955<\/p><\/div>\n

\"Weegee,

Weegee, Untitled, c. 1945<\/p><\/div>\n

\"Todd

Todd Webb, View South from the top of the RCA Building showing the Empire State Building, 1947<\/p><\/div>\n

\"Todd

Todd Webb, View East from the 24th floor of the Esso Building, 1947<\/p><\/div>\n

\"Simpson

Simpson Kalisher, Untitled, c. 1949<\/p><\/div>\n

\"Simpson

Simpson Kalisher, Untitled (Staten Island Ferry), c. 1949<\/p><\/div>\n

\"Simpson

Simpson Kalisher, Untitled (Penn Station), c. 1949<\/p><\/div>\n

\"Simpson

Simpson Kalisher, The shining airplane, c. 1948<\/p><\/div>\n

\"Louise

Louise Rosskam, New York City- Trucking. Trucks under the Third Avenue elevated platform, 1945<\/p><\/div>\n

\"Jeanne

Jeanne Ebstel, Untitled, c. 1947<\/p><\/div>\n

\"Jeanne

Jeanne Ebstel, Untitled, c. 1946<\/p><\/div>\n

\"Jan

Jan Lukas, Untitled, 1964<\/p><\/div>\n

\"Jan

Jan Lukas, Untitled, 1963<\/p><\/div>\n

\"Jan

Jan Lukas, New York, Fulton Fishmarket, 1964<\/p><\/div>\n

\"Jan

Jan Lukas, New York, 32nd Street, 1964<\/p><\/div>\n

\"Jan

Jan Lukas, New York City, Brooklyn Bridge, 1964<\/p><\/div>\n

\"Jan

Jan Lukas, Flatiron Building, 1966<\/p><\/div>\n

\"Fritz

Fritz Neugass, Untitled, c. 1948<\/p><\/div>\n

\"Fritz

Fritz Neugass, The Sun Breaks Through, c. 1948<\/p><\/div>\n

\"Fritz

Fritz Neugass, Reflections- Empire State in a Rain Puddle, c. 1948<\/p><\/div>\n

\"Fritz

Fritz Neugass, Penn Station, c. 1948<\/p><\/div>\n

\"Fritz

Fritz Neugass, 42nd Street, c. 1948<\/p><\/div>\n

\"Esther

Esther Bubley, Weehawken, New Jersey. View looking east from 50th Street and East Boulevard showing New York Central piers, Hudson River and Midtown Manhattan skyline, 1946.<\/p><\/div>\n

\"Esther

Esther Bubley, View of Third Avenue El looking downtown from 53rd Street. The El goes as far downtown as the Battery, 1946<\/p><\/div>\n

\"Esther

Esther Bubley, New York Harbor- View looking East on Fulton Street from Third Avenue El platform, 1946<\/p><\/div>\n

\"Donald

Donald Blumberg, St. Patrick’s Cathedral routine<\/p><\/div>\n

\"David

David Attie, Untitled, c. 1955<\/p><\/div>\n

\"David

David Attie, Times Square, c. 1955<\/p><\/div>\n

\"David

David Attie, New York Distortion, 1950<\/p><\/div>\n

\"Beuford

Beuford Smith, Man with Roses, 125th Street<\/p><\/div>\n

\"Beuford

Beuford Smith, Boy Holding Flag<\/p><\/div>\n

\"Benn

Benn Mitchell, Times Square, 1950<\/p><\/div>\n

\"Benn

Benn Mitchell, Times Square 42nd Street, New York City, c. 1955<\/p><\/div>\n

\"Benn

Benn Mitchell, Mirrors of Life, Self-Portrait, 42nd Street, 1950<\/p><\/div>\n

\"Benn

Benn Mitchell, Mirrors of Life, 42nd Street, 1949<\/p><\/div>\n

\"Bedrich

Bedrich Grunzweig, Times Square at Night, New York City, c. 1959<\/p><\/div>\n

\"Bedrich

Bedrich Grunzweig, Four Santas in a New York Bus, Christmas, 1954<\/p><\/div>\n

\"Anthony

Anthony Barboza, Harlem, NY<\/p><\/div>\n

\"Jan

Jan Lukas, Untitled, 1964<\/p><\/div>\n

\"Jan

Jan Lukas, New York, 1964<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"

New York became home-city to many extraordinary photographers who shared love with their home with magnificent pictures. Oldpics selected 65 bright pictures…<\/p>\n","protected":false},"author":1,"featured_media":4122,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9,1],"tags":[51,48,32,95],"yoast_head":"\nPostwar New York in 65 unforgettable vintage pictures - Old Pictures<\/title>\n<meta name=\"description\" content=\"65 magnificent pictures of the postwar New York by the best-known New Yorkers. These photographers loved their city with hearts and cameras.\" \/>\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\/postwar-new-york-in-65-unforgettable-vintage-pictures\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Postwar New York in 65 unforgettable vintage pictures - Old Pictures\" \/>\n<meta property=\"og:description\" content=\"65 magnificent pictures of the postwar New York by the best-known New Yorkers. These photographers loved their city with hearts and cameras.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/\" \/>\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-30T13:31:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-23T13:16:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/Todd-Webb-View-South-from-the-top-of-the-RCA-Building-showing-the-Empire-State-Building-1947-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"2048\" \/>\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=\"7 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\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/Todd-Webb-View-South-from-the-top-of-the-RCA-Building-showing-the-Empire-State-Building-1947-scaled.jpg\",\"contentUrl\":\"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/Todd-Webb-View-South-from-the-top-of-the-RCA-Building-showing-the-Empire-State-Building-1947-scaled.jpg\",\"width\":2560,\"height\":2048,\"caption\":\"Todd Webb, View South from the top of the RCA Building showing the Empire State Building, 1947\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#webpage\",\"url\":\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/\",\"name\":\"Postwar New York in 65 unforgettable vintage pictures - Old Pictures\",\"isPartOf\":{\"@id\":\"https:\/\/oldpics.net\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#primaryimage\"},\"datePublished\":\"2020-06-30T13:31:05+00:00\",\"dateModified\":\"2020-09-23T13:16:12+00:00\",\"author\":{\"@id\":\"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e\"},\"description\":\"65 magnificent pictures of the postwar New York by the best-known New Yorkers. These photographers loved their city with hearts and cameras.\",\"breadcrumb\":{\"@id\":\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#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\":\"Postwar New York in 65 unforgettable vintage pictures\"}]},{\"@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":"Postwar New York in 65 unforgettable vintage pictures - Old Pictures","description":"65 magnificent pictures of the postwar New York by the best-known New Yorkers. These photographers loved their city with hearts and cameras.","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\/postwar-new-york-in-65-unforgettable-vintage-pictures\/","og_locale":"en_US","og_type":"article","og_title":"Postwar New York in 65 unforgettable vintage pictures - Old Pictures","og_description":"65 magnificent pictures of the postwar New York by the best-known New Yorkers. These photographers loved their city with hearts and cameras.","og_url":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/","og_site_name":"Old Pictures","article_publisher":"https:\/\/www.facebook.com\/oldpics.net\/","article_published_time":"2020-06-30T13:31:05+00:00","article_modified_time":"2020-09-23T13:16:12+00:00","og_image":[{"width":2560,"height":2048,"url":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/Todd-Webb-View-South-from-the-top-of-the-RCA-Building-showing-the-Empire-State-Building-1947-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary","twitter_misc":{"Written by":"Andrew Piper","Est. reading time":"7 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\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#primaryimage","inLanguage":"en-US","url":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/Todd-Webb-View-South-from-the-top-of-the-RCA-Building-showing-the-Empire-State-Building-1947-scaled.jpg","contentUrl":"https:\/\/oldpics.net\/wp-content\/uploads\/2020\/06\/Todd-Webb-View-South-from-the-top-of-the-RCA-Building-showing-the-Empire-State-Building-1947-scaled.jpg","width":2560,"height":2048,"caption":"Todd Webb, View South from the top of the RCA Building showing the Empire State Building, 1947"},{"@type":"WebPage","@id":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#webpage","url":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/","name":"Postwar New York in 65 unforgettable vintage pictures - Old Pictures","isPartOf":{"@id":"https:\/\/oldpics.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#primaryimage"},"datePublished":"2020-06-30T13:31:05+00:00","dateModified":"2020-09-23T13:16:12+00:00","author":{"@id":"https:\/\/oldpics.net\/#\/schema\/person\/d8c5bb049b6afec697fc0e2bdbbd298e"},"description":"65 magnificent pictures of the postwar New York by the best-known New Yorkers. These photographers loved their city with hearts and cameras.","breadcrumb":{"@id":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/oldpics.net\/postwar-new-york-in-65-unforgettable-vintage-pictures\/#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":"Postwar New York in 65 unforgettable vintage pictures"}]},{"@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\/4045"}],"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=4045"}],"version-history":[{"count":3,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/4045\/revisions"}],"predecessor-version":[{"id":4439,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/posts\/4045\/revisions\/4439"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/media\/4122"}],"wp:attachment":[{"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/media?parent=4045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/categories?post=4045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oldpics.net\/wp-json\/wp\/v2\/tags?post=4045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}