wp_update_themes [ WordPress Function ]
wp_update_themes ( No parameters )
| Uses: |
|
| Returns: |
|
| Defined at: |
|
Soorgelijke functies: wp_update_theme, wp_update_term, _maybe_update_themes, wp_get_themes, wp_update_post
Check theme versions against the latest versions hosted on WordPress.org.
A list of all themes installed in sent to WP. Checks against the WordPress server at api.wordpress.org. Will only check if WordPress isn't installing.
Source
<?php
function wp_update_themes() {
include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
if ( defined( 'WP_INSTALLING' ) )
return false;
$installed_themes = wp_get_themes();
$last_update = get_site_transient( 'update_themes' );
if ( ! is_object($last_update) )
$last_update = new stdClass;
$themes = array();
$checked = array();
// Put slug of current theme into request.
$themes['current_theme'] = get_option( 'stylesheet' );
foreach ( $installed_themes as $theme ) {
$checked[ $theme->get_stylesheet() ] = $theme->get('Version');
$themes[ $theme->get_stylesheet() ] = array(
'Name' => $theme->get('Name'),
'Title' => $theme->get('Name'),
'Version' => $theme->get('Version'),
'Author' => $theme->get('Author'),
'Author URI' => $theme->get('AuthorURI'),
'Template' => $theme->get_template(),
'Stylesheet' => $theme->get_stylesheet(),
);
}
// Check for update on a different schedule, depending on the page.
switch ( current_filter() ) {
case 'load-update-core.php' :
$timeout = 60; // 1 min
break;
case 'load-themes.php' :
case 'load-update.php' :
$timeout = 3600; // 1 hour
break;
default :
$timeout = 43200; // 12 hours
}
$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked );
if ( $time_not_changed ) {
$theme_changed = false;
foreach ( $checked as $slug => $v ) {
$update_request->checked[ $slug ] = $v;
if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
$theme_changed = true;
}
if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) {
foreach ( $last_update->response as $slug => $update_details ) {
if ( ! isset($checked[ $slug ]) ) {
$theme_changed = true;
break;
}
}
}
// Bail if we've checked recently and if nothing has changed
if ( ! $theme_changed )
return false;
}
// Update last_checked for current to prevent multiple blocking requests if request hangs
$last_update->last_checked = time();
set_site_transient( 'update_themes', $last_update );
$options = array(
'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3),
'body' => array( 'themes' => serialize( $themes ) ),
'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);
$raw_response = wp_remote_post( 'http://api.wordpress.org/themes/update-check/1.0/', $options );
if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) )
return false;
$new_update = new stdClass;
$new_update->last_checked = time( );
$new_update->checked = $checked;
$response = maybe_unserialize( wp_remote_retrieve_body( $raw_response ) );
if ( is_array( $response ) )
$new_update->response = $response;
set_site_transient( 'update_themes', $new_update );
}
?>
Examples [ wp-snippets.com ]
Top Google zoekresultaten
- PHPXRef 0.7 : WordPress : Function Reference: wp_update_themes()
Function and Method Cross Reference. wp_update_themes(). Defined at: /wp- includes/update.php -> line 219. Referenced 1 times: /wp-includes/update.php ...
phpxref.ftwr.co.uk - #16362 (wp_update_themes spawns HTTP request on every ...
wp_update_themes spawns HTTP request on every themes.php/update.php ... wp_update_themes is not handling caching the HTTP request correctly.
core.trac.wordpress.org - Docs for page update.php
wp_update_themes (line 232). Check theme versions against the latest versions hosted on WordPress.org. A list of all themes installed in sent to WP. Checks ...
phpdoc.wordpress.org - Some Wordpress insights « Too Much White Space
Jun 20, 2011 ... //Deactivate Theme Update remove_action( 'load-themes.php', ' wp_update_themes' ); remove_action( 'load-update.php', 'wp_update_themes' ) ...
toomuchwhitespace.integritive.com