L'accesso a questa funzione è contrassegnato come privato. Ciò significa che non è destinata all'uso da parte degli sviluppatori di plugin o temi, ma solo ad altre funzioni principali. È elencata qui per completezza.

Aggiorna l'autore delle revisioni, aggiunge il post corrente come revisione e imposta la versione delle revisioni a 1.

Parametri

$post

(WP_Post)(Richiesto)Oggetto del post

$revisioni

(array)(Richiesto)Revisioni attuali del post

Ritorno

(bool) true se le revisioni sono state aggiornate, false se ci sono problemi

Fonte

File: wp-includes/revision.php

function_wp_upgrade_revisions_of_post($post,$revisions){global$wpdb;// Add post option exclusively.$lock="revision-upgrade-{$post->ID}";$now=time();$result=$wpdb->query($wpdb->prepare("INSERT IGNORE INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, 'no') /* LOCK */",$lock,$now));if(!$result){// If we couldn't get a lock, see how old the previous lock is.$locked=get_option($lock);if(!$locked){// Can't write to the lock, and can't read the lock.// Something broken has happened.returnfalse;}if($locked>$now-3600){// Lock is not too old: some other process may be upgrading this post. Bail.returnfalse;}// Lock is too old - update it (below) and continue.}// If we could get a lock, re-"add" the option to fire all the correct filters.update_option($lock,$now);reset($revisions);$add_last=true;do{$this_revision=current($revisions);$prev_revision=next($revisions);$this_revision_version=_wp_get_post_revision_version($this_revision);// Something terrible happened.if(false===$this_revision_version){continue;}// 1 is the latest revision version, so we're already up to date.// No need to add a copy of the post as latest revision.if(0<$this_revision_version){$add_last=false;continue;}// Always update the revision version.$update=array('post_name'=>preg_replace('/^(d+-(?:autosave|revision))[d-]*$/','$1-v1',$this_revision->post_name),);/*
		 * If this revision is the oldest revision of the post, i.e. no $prev_revision,
		 * the correct post_author is probably $post->post_author, but that's only a good guess.
		 * Update the revision version only and Leave the author as-is.
		 */if($prev_revision){$prev_revision_version=_wp_get_post_revision_version($prev_revision);// If the previous revision is already up to date, it no longer has the information we need 🙁if($prev_revision_version<1){$update['post_author']=$prev_revision->post_author;}}// Upgrade this revision.$result=$wpdb->update($wpdb->posts,$update,array('ID'=>$this_revision->ID));if($result){wp_cache_delete($this_revision->ID,'posts');}}while($prev_revision);delete_option($lock);// Add a copy of the post as latest revision.if($add_last){wp_save_post_revision($post->ID);}returntrue;}

Correlato

Utilizzi

Usi Descrizione
wp-includes/cache.php: wp_cache_delete()

Rimuove il contenuto della cache corrispondente a chiave e gruppo.

wp-includes/option.php: update_option()

Aggiorna il valore di un'opzione già aggiunta.

wp-includes/option.php: delete_option()

Rimuove l'opzione per nome. Impedisce la rimozione delle opzioni protette di WordPress.

wp-includes/option.php: get_option()

Recupera il valore di un'opzione in base al suo nome.

wp-includes/revision.php: _wp_get_post_revision_version()

Ottiene la versione della revisione del post.

wp-includes/revision.php: wp_save_post_revision()

Crea una revisione per la versione corrente di un post.

wp-includes/wp-db.php: wpdb::query()

Esegue una query al database MySQL, utilizzando la connessione corrente al database.

wp-includes/wp-db.php: wpdb::update()

Aggiorna una riga nella tabella.

wp-includes/wp-db.php: wpdb::prepare()

Prepara una query SQL per un'esecuzione sicura.

Utilizzato da

Usato da Descrizione
wp-admin/includes/post.php: edit_post()

Aggiorna un post esistente con i valori forniti in $_POST.

Changelog

Versione Descrizione
3.6.0 Introdotto.