/*
* 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":4744,"date":"2020-08-25T14:05:18","date_gmt":"2020-08-25T12:05:18","guid":{"rendered":"https:\/\/oldpics.net\/?p=4744"},"modified":"2020-08-25T14:05:21","modified_gmt":"2020-08-25T12:05:21","slug":"all-pulitzer-prize-photos-1942-1967","status":"publish","type":"post","link":"https:\/\/oldpics.net\/all-pulitzer-prize-photos-1942-1967\/","title":{"rendered":"All Pulitzer Prize photos (1942-1967)"},"content":{"rendered":"\n
This publication features all photos that won the Pulitzer Prize in the Photography category. It was the very first Pulitzer category to honor outstanding pictures in journalism.<\/span><\/p>\n In 1968 the Photography category split on Feature Photography and Spot News Photography (existed till 1999).<\/span><\/p>\n Until now, Pulitzer Prize remains the most prestigious journalistic award. Its central concept to honor is the social usefulness of art. Here’s why most of the photos nominated for a Pulitzer Prize are painfully sad and sometimes downright oppressive. But they fulfill their main goal – to inform people about the existing problem, and often help to solve it by drawing public attention to it.<\/span><\/p>\n Many of the Pulitzer Prize winning photos correspond with the Top 100 most influential pictures in history.<\/a><\/span><\/p>\n<\/blockquote>\n While Literature Pulitzers are strictly allocated to Americans, the Photography section award can go overseas. Although, the major part of Pulitzers went to the Ameican photographers. There’re only four foreigners among the winners of the primal award period (1942-1967).<\/span><\/p>\n In most cases, single pictures won the award. But there were several years when sequences of photos won the Pulitzer Prize. In some cases, the jury awarded the whole set but, at the same time picking the main image. That’s what happened in 1957 when honoring Harry’s Trask capture of the Andrea Doria sinking.<\/span><\/p>\n Also, there’re was one exceptional year when two photos won the Pulitzer prize together. It was the year of 1944 when Earle L. Bunker received an award for his photo “Homecoming” and Frank Filan was marked for his photo “Tarawa Island.”<\/span><\/p>\n We’ve put all Pulitzer winning photos in chronological order.\u00a0<\/span><\/p>\n Also, keep in mind the time lag. Pulitzer is just like Oscar. It honors the photos that were taken a year before.<\/span><\/p>\n <\/p>\n ‘Ford Strikers Riot’ was the very first photo to win the Pulitzer. The Ford strike in pre-war spring in 1941 had massive media coverage. While some of the factory employees agreed to strike for the rights, very few of them continued to work as usual. At least they tried to do so. Milton Brooks captured the conflict between a worker who wanted to break through the protesters and was beaten. Frankly speaking, this photo looks relatively mild when compared to the future Award nominees.<\/span><\/p>\n A full story of the first Pulitzer winning photo.<\/a><\/p>\n <\/p>\n An excellent image of Frank Noel captured the desperate thirst of the shipwrecked survivors. Both, photographer and a hero of the photograph suffered the Japanese torpedo attacks and were looking for survival in the ocean waters. The story behind this photo is just fascinating.<\/span><\/p>\n A full story of the ‘Water!’ image.<\/a><\/p>\n <\/p>\n As we’ve mentioned, there were two Pulitzer Prize winning photos in 1944. ‘Homecoming’ by Earle Bunker was the first one. Photographer captured the heart touching moment when the family’s greeting their dad, who came back from WW2 for a short vacation. And excellent angle and moment that stilled the pure joy.<\/span><\/p>\n A full story behind this picture.<\/a> The battle of the Tarawa Island (or even Tarawa atoll) was the bloodiest operation of the Pacific Theater of WW2. Frank Filan courageously captured it in the best way possible. While Frank took enough of close-quarters combat pictures, his Pulitzer winning snap wasn’t so dynamic. It photo shows dead Japanese soldiers scattered by the bomb explosion.<\/span><\/p>\n <\/p>\n The battle of Iwo Jima is a sacred place for American history and war photography. So many glorious camerapeople were there at the same time, but only Joe Rosental was the one who accompanied that group of marines who decided to raise the flag. Eugene Smith was another genius photographer who was there. His WW2 Pacific Battles are also noteworthy. But Joe Rosental was the luckiest photographer who captured one of the greatest Pulitzer Prize winning photos.<\/span><\/p>\n Read more about this historical picture.<\/a><\/p>\n <\/p>\n The fire of the Winecoff Hotel killed 119 people on December 7, 1946.\u00a0 This horrible incident captured 280 guests in a burning building. The construction standards of the hotel were completely outdated. There were no fire escapes, fire doors, nor sprinklers.<\/span><\/p>\n Firefighters of Atlanta tried to stop the fire desperately. The saved the majority despite the impossible conditions. The inadequate equipment was another reason for the high death toll. The firefighter’s ladders stretched only to the eighth floor. Also, their jumping screens couldn’t hold jumps of more than 70 feet.<\/span><\/p>\n Arnold Hardy was an amateur photographer who heard the firefighter’s sirens and decided to follow them for a lucky snapshot. He got a $200 bonus for his picture from the Associated Press.<\/span><\/p>\n The woman in his Pulitzer winning photo was Daisy McCumber, a 41-year-old Atlanta clerk. Against all the odds, she unbelievably survived the 115-feet jump.<\/span><\/p>\n <\/p>\n Frank Cushing was on a routine photo assignment of Boston Herald when he occasionally heard an alert coming from the radio of a police car. It was a shooting report, and an officer was injured. Cushing rushed to the crime location.<\/span><\/p>\n Ed Bancroft was a boy with a gun. Policemen were asking him about the nearby robbery when he started shooting. He shot an officer and took a hostage, another teenager, Bill Ronan.<\/span><\/p>\n Cushing took some long-distance photos, but it too far away. Then the photographer rushed to the house on the opposite side of the street. He convinced a homeowner to let him in and snapped the action scene. “I knew that the gunman noticed me and feared that the kid would shoot me, “Cushing said later, “But I wanted the picture.”<\/span><\/p>\n <\/p>\n This is another photo that hit both the Pulitzer Prize and Top 100 most influential pictures in history. Nathaniel Fein knew that this image would have a decent historical value. Legendary player Babe Ruth had throat cancer, and by that time, he already lost the fight. Ruth visited the 25th-anniversary celebration of the opening of Yankee Stadium in 1948. He came to the stadium to say goodbye to his fans. Ruth died just two months later.<\/span><\/p>\n <\/p>\n The image “Near Collision at Air Show” by Bill Crouch is one of those rare Pulitzer Prize winning photos<\/span>\u00a0that captured neither death nor any accident or a disaster. Well, it could be an accident, but Pilot Chet Derby was skilled enough to dodge the B-29 Superfortress. Military airplanes (three of them)\u00a0 were supposed to fly through Derby’s smoke trail. One of the B-29s came in too soon, and Chet’s smoking plane passed within five feet of the deadly collision.<\/span><\/p>\n <\/p>\n Max Desfor covered the war in North Korea brilliantly. He captured the rare moments of soldier’s joy together with the pain and suffering of war. In his Pulitzer winning photo, people of Pyongyang and refugees slowly climb over the destroyed bridge. War refugees are directing to the southern bank of the Taedong River. Koreans are trying to escape from the attacking squads of the Chinese army that fought on the North Korea side. Max Desfor captured this photo during the retreat of the American military. He was moving along with the soldiers along the river when noticed, in his words, “a once-reliable way to cross it, recently destroyed by a bomb. Korean refugees were streaming to the southern bank. On these huge beams, they looked like ants … And all this is was going on in absolute silence.”<\/span><\/p>\n More excellent photos of the Korean War.<\/a><\/p>\n <\/p>\n It was a famous game when Drake player Johnny Bright’s jaw was deliberately broken. The Johnny Bright was an African-American player; the opposing team was all-white. It was the first time that an African-American athlete played on the national level.\u00a0<\/span><\/p>\n Bright’s trauma also emphasized the racial conflicts of that historical period.\u00a0<\/span><\/p>\n This set of four Pulitzer Prize winning photos of the incident captured by photographers John Robinson and Don Ultang perfectly snapped Smith’s jaw-breaking hit. The most important was the fact that everything happened after Bright had passed the ball off. Robinson and Ultang focused on Bright before the game, as everybody was talking that he will become a target on the field.<\/span><\/p>\n In the photography world, Bill Gallagher was known for his funny photos. He took this picture of Democratic presidential candidate and Illinois Governor Adlai E. Stevenson (right) and Michigan Gov. G. Mennen Williams on the Labor Day 1952. While getting closer to the podium to record Stevenson’s speech, Gallager detected a hole in Stevenson’s shoe. Gallagher set his focus on six feet, set the lens opening, and removed the flashgun so as not to attract attention. He set the camera on the floor of the platform and snapped a set of the Pulitzer Prize winning photos.<\/span><\/p>\n <\/p>\n Not all of the Pulitzer Prize photos are made by the professional photographers. A Rescue at Redding is one of them. On May 3, 1953, a 38-year-old housewife from California named Virginia, and her husband Walter were on their way to fish in Shasta Lake. Near Redding, the driver of a fruit truck in front of them lost control and crashed into the railing of the bridge across the Pit River. The couple ran out of the car and saw that the trailer was still balancing on edge, but the cabin with both drivers inside was dangling above the river.<\/span><\/p>\n Taking a photograph was not the first thing that the Schau couple did: they immediately rushed to help. Luckily, one of the other witnesses of the crash had a thick sea rope in his trunk, which Walter, together with the other men, threw into the cabin. As soon as the drivers, Bud Overby and Hank Baum, got onto the bridge, the engine of the truck caught fire, and the cabin fell on the rocks from 12 meters.<\/span><\/p>\n <\/p>\n This photograph commemorates the tragic incident that took place on April 2, 1954. Photographer John Gaunt lived by the sea. One morning he heard screams on the beach and ran to find out what had happened. He saw a young couple living nearby. They have just discovered the loss of a one and a half-year-old child who fled to the sea and was carried away by the wave. They couldn’t save their baby. The next day, this photo hit the front page of The Times. The picture caused a flurry of criticism. Many considered it unethical to photograph the grief of young parents at such a moment. However, the following year, photography won the Pulitzer Prize. The commission called it “poignant and deeply disturbing.”<\/span><\/p>\n <\/p>\n It was the first time when Pulitzer Prize winning photos had collective ownership. The prize went to the staff of the New York Daily News for various outstanding news photo coverage in 1955. The most outstanding sample was this image by George Mattson. He was lucky to fly over a crashed B-26 warplane in Long Island. He took the moment of the firemen squad arrival. Mattson had noticed the smoke and asked his pilot to fly closer to the accident location. He called the editorial staff right after he touched the solid ground. Editor sent more cameras to the plane crash site. Both pilots on the B-26 were killed.<\/span><\/p>\n <\/p>\n Harry A. Trask was a lucky photographer at Boston Traveler who captured the final moments of the sinking Andrea Doria ship in 1956. His historical pictures won a Pulitzer Award a year later, in 1957.<\/span><\/p>\n The tragic accident happened due to the complicated weather conditions. Two ships collided in a zero vision because of the dense fog.<\/span><\/p>\n Trask took an airplane to snap the sinking of the Andrea Doria, a once-gigantic ocean liner. His Pulitzer Prize winning set consisted of four photos. The contest jury picked the one above as a main.<\/span><\/p>\n A full story behind the Andrea Doria sinking.<\/a><\/p>\n <\/p>\n William Beall never thought that the routine assignment to cover the Chinese parade would bring one of the Pulitzer\u00a0 Prize photos. He was keeping his eye on the march, trying to find at least one good enough scene. But everything was dull and routine on that day. Suddenly, William noticed a small boy step into the street where the parade was going on. A kid was attracted by a bright and colorful dancing Chinese lion.<\/span><\/p>\n A tall young policeman moved towards the boy. He seemed to be inexperienced, and William Beall was curious if the officer will handle this situation. Surprisingly, a young police officer patiently cautioned a kid to step back from the busy street.<\/span><\/p>\n A full story behind a photo.<\/a><\/p>\n <\/p>\n This winning image of a young boy and a policeman is sad and awful. We cannot imagine that such a picture can hit the publications nowadays. <\/span><\/p>\n A blancket covers boy’s lifeless body. His damaged toy is laying nearby.\u00a0<\/span><\/p>\n According to the Pulitzer jury, Seaman captured “a dramatic moment of the sudden death of a child in the street.”\u00a0<\/span><\/p>\n Seaman was hanging around looking for a newsworthy picture for his newspaper. At noticed a young boy, Ralph Leonard Fossum, aged 9. A kid with a red wagon rushed to cross a street when the light was red. Photogrpaher had a son of the same age. Seaman warned a boy to stop, not to pass because of the danger. The young boy fled to the curb, and Seaman continued his search. Moments later photographer heard on the police radio that a young boy had been killed by a garbage truck. He rushed back and found that it was the same boy he had just spoken with.\u00a0<\/span><\/p>\n In this picture, a former Batista army corporal Jos\u00e9 Rodr\u00edguez receives last rites from a priest at Matanzas, Cuba,1959. Andrew Lopez captured the whole series of Pulitzer Prize photos. The corporal served in the dictator Fulgencio Batista’s army. A Fidel Castro squad executed Rodriguez. The prosecutor, who just proclaimed a death sentence a moment ago, tried to stop Lopez taking photos. He ordered soldiers to bring his films, but Lopez gave them the older ones.<\/span><\/p>\n <\/p>\n On October 12, 1960, the head of the Socialist Party of Japan, Inejiro Asanuma, participated in the pre-election debate in Tokyo. The event went on as usual: noisy and without any incident. But, when the politician was already leaving the building, a young man pounced on Asanuma and stabbed him. Interestingly, he used a short, traditional Japanese wakizashi sword. Here’s why the photographer named this image ‘Tokyo Stabbing.’<\/span><\/p>\n A full story behind the Tokyo Stabbing picture.<\/a><\/p>\n <\/p>\n Paul Vathis captured two presidents Eisenhower and Kennedy during their meeting at Camp David residence in 1961. JFK summoned the former commander Ike to discuss the challenges set by USSR during the early 1960s. The critical point was the failed CIA operation at the Bay of pigs, which couldn’t overthrow Fidel Castro’s regime. Eisenhower advised Kennedy to take some serious steps to show USSR that they have no power in the Western Hemisphere. Here’s how Vathis named this photo ‘Serious steps.’<\/span><\/p>\n A full story about the ‘Serius steps’ photo.<\/a><\/p>\n <\/p>\n Hector Rondon Lovera worked as a photo reporter for the Venezuelan newspaper La Republica. He traveled to Puerto Cabello from the capital to cover the military uprising against President Romulo Betancourt. On June 2, 1962, Lovera and his colleague, Jos\u00e9 Luis Blasco, managed to enter the city and capture the entrance of government tanks to Puerto Cabello. Lovera recalled that he had to take many photographs while lying down on the ground, not to catch a bullet. Later Hector will name his most famous shot of that day, Aid from Padre.<\/span><\/p>\n The full story behind the ‘The priest and a dying soldie’ photo.<\/a><\/p>\n <\/p>\n Lee Harvey Oswald was under arrest for the assassination of President John F. Kennedy in 1963. Police had to transfer him to the local county jail. Oswald was stepping out from a crowd of reporters and photographers when a nightclub owner Jack Ruby pulled a trigger of his Colt Cobra and shot him dead.\u00a0<\/span><\/p>\n Ruby’s motives for killing Oswald were not clear.<\/span><\/p>\n There were plenty of cameras that also captured the moment. But Robert H. Jackson had the best angle. Pulitzer jury noted that the image captured “the cold-blooded determination of the killer, the painful gasp of the handcuffed victim, and the confuse of helplessness on the face of a policeman.”<\/span><\/p>\n <\/p>\n While taking his Pulitzer winning photos, Faas didn’t try to show US soldiers as heroes all the time. And here’s why some officers didn’t like his photography. “This is a terrible photo,” complained one of the commanders. “I don’t want these pictures of my squad. Soldiers look sleepy and tired. They are in a fighting squad.”<\/span><\/p>\n Faas tried to explain that their exhaustion reflects their combat experience; six months later, this photograph became so popular that the same commander invited Faasa once more to take new pictures of his platoon.<\/span><\/p>\n\n
Some Pulitzer winning statistics<\/h3>\n
1942. Milton Brooks for his photo entitled, “Ford Strikers Riot.”<\/h3>\n
1943. Frank Noel for his photo entitled, “Water!”.<\/h3>\n
1944. Earle L. Bunker for his photo “Homecoming.”<\/h3>\n
<\/span><\/p>\n1944. Frank Filan for his photo “Tarawa Island”<\/h3>\n
1945. Joe Rosenthal “Marines planting the American flag on Mount Suribachi on Iwo Jima”<\/h3>\n
1947. Arnold Hardy for his photo of a woman falling from a burning hotel.<\/h3>\n
1948. Frank Cushing for his photo “Boy Gunman and Hostage.”<\/h3>\n
1949. Nathaniel Fein for his photo “Babe Ruth Bows Out.”<\/h3>\n
1950. Bill Crouch for his picture, “Near Collision at Air Show.”<\/h3>\n
1951. Max Desfor for his photographic coverage of the Korean War.<\/h3>\n
1952. John Robinson and Don Ultang for their sequence of 6 pictures of the Drake-Oklahoma A&M football game.<\/h3>\n
1953. William M. Gallagher for a photo of ex-Governor Adlai E. Stevenson.<\/h3>\n
1954. Virginia M. Schau for snapping a rescue at Redding, Calif.<\/h3>\n
1955. John L. Gaunt for a photo “Tragedy by the Sea”.<\/h3>\n
1956 . The staff of New York Daily News for its consistently excellent news picture coverage in 1955.<\/h3>\n
The best s photo “Bomber Crashes in Street.”<\/h3>\n
1957. Harry A. Trask for his photographic sequence of the sinking of the liner Andrea Doria.<\/h3>\n
1958. William C. Beall for his photograph “Faith and Confidence”.<\/h3>\n
1959. William Seaman for his dramatic photograph of the sudden death of a child in the street.<\/h3>\n
1960. Andrew Lopez. Photographs of a corporal of Dictator Batista’s army.<\/h3>\n
1961. Yasushi Nagao for his photograph, “Tokyo Stabbing.”<\/h3>\n
1962. Paul Vathis for the photograph “Serious Steps”.<\/h3>\n
1963. Hector Rondon for his picture of a priest holding a wounded soldier. “Aid From The Padre.”<\/h3>\n
1964. Robert H. Jackson for his photograph’ Murder of Lee Oswald by Jack Ruby’.<\/h3>\n
1965. Horst Faas for his combat photography of the war in South Vietnam.<\/h3>\n