När det gäller säkerhet vet vi hur viktigt det är att regelbundet uppdatera WordPress-installationer (kärna, teman och plugins), och hur lång tid uppgraderingsprocessen kan ta för oss, särskilt när vi har installerat ett stort antal plugins. Det rekommenderas ofta att följa dessa steg:

  1. Säkerhetskopiera filer och databastabeller
  2. Inaktivera plugins
  3. Uppdatering
  4. Aktivera plugins en efter en
  5. Kontrollera webbplatsen

Det kan vara en tråkig uppgift för en enda webbplats och det kan vara ett irriterande och komplext jobb när vi måste uppdatera fem, tio eller fler webbplatser.

Med det specifika syftet att förbättra installationssäkerheten och göra webbplatsadministrationen enklare introducerade WordPress 3.7 automatiska uppdateringar. Som standard är den här coola funktionen aktiverad för mindre versioner (dvs. underhålls- och säkerhetsreleaser) och översättningsfiler, men det är möjligt att anpassa alla typer av uppdateringar. Så i det här inlägget tittar vi på hur man automatiserar uppgraderingsprocessen närhelst en ny version av WordPress-kärnan, temat eller plugin släpps. Låt oss dyka djupt in i automatiska WordPress-uppdateringar!

WordPress automatiska uppdateringar
WordPress automatiska uppdateringar

Index för automatiska uppdateringar

WordPress automatiska uppdateringar

Det finns fyra typer av uppdateringar och automatiska WordPress- uppdateringar:

  1. Kärnuppdateringar
  2. Pluginuppdateringar
  3. Temauppdateringar
  4. Översättningsfiler uppdateras

Kärnuppdateringar är indelade i tre subtyper:

  1. Kärnutveckling(endast tillgänglig för utvecklingsinstallationer)
  2. Mindre kärnuppdateringar(underhåll och säkerhet) – aktiverat som standard i stabila installationer
  3. Stora kärnuppdateringar

WordPress låter dig automatisera uppdateringsprocessen för någon av dessa typologier som ger två wp-config.php- konstanter och ett stort antal API-filter.

Kontrollera bakgrundsuppdateringar genom wp-config.php

WordPress tillhandahåller ett par wp-config.php- konstanter som gör att vi kan styra automatiska uppdateringar. Om du ställer in AUTOMATIC_UPDATER_DISABLED till true kommer alla typer av automatisk uppgradering att inaktiveras:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE tillåter oss att kontrollera kärnuppdateringar (mindre, större och utvecklingsversioner). Denna konstant kan definieras enligt följande:

# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

# Enables all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

# Enables minor updates:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

I utvecklingsinstallationer är WP_AUTO_UPDATE_CORE standardvärdena sanna. I stabila installationer är den som standard mindre.

För fullständighetens skull bör jag nämna en ytterligare konstant som kan definieras för att inaktivera autouppdateringar. Om du ställer in värdet till sant inaktiveras dock alla filredigeringar, till och med teman och plugin-installationer och manuella uppdateringar.

define( 'DISALLOW_FILE_MODS', true );

Istället kanske du föredrar att definiera DISALLOW_FILE_EDIT Skonstanten, vilket skulle inaktivera filredigeraren, men hålla säkerheten för installation och uppdatering.

Relaterad handledning:  wp-config.php-fil – En djupgående vy om hur du konfigurerar WordPress

Kontrollera bakgrundsuppdateringar genom API-filter

Konfigurationskonstanter ger ett allmänt sätt att aktivera eller inaktivera automatiska uppdateringar. Men WordPress tillhandahåller ett antal filter som ger en djupare kontroll över alla typer av uppdateringar.

Obs! Filter bör användas i plugins, och ”måste använda plugins” är ett bra alternativ för bakgrundsuppdateringar. mu-plugins finns i en viss mapp inuti / wp-innehåll och aktiveras automatiskt av WordPress. Dessa plugins visas inte på WordPress Plugins-skärmen, så de kunde inte avaktiveras av misstag eller tas bort av webbplatsadministratörerna. Mer information finns i Codex-dokumentationen

För det första, att returnera true via filteret automatic_updater_disabled har samma effekt som att definiera AUTOMATIC_UPDATER_DISABLED konstanten till true i wp-config.php :

add_filter( 'automatic_updater_disabled', '__return_true' );

Vi kan styra vilken som helst av de typologier uppdaterings genom auto_update_$type filter som gör det möjligt eller inaktivera uppdateringar beroende på värdet av $type( 'core', 'plugin', 'theme' eller 'translation').

Så vi kan automatisera alla kärnuppdateringar genom att returnera true genom auto_update_core filtret:

add_filter( 'auto_update_core', '__return_true' );

I följande exempel aktiverar vi automatiska uppdateringar för teman, plugins och översättningar:

add_filter( 'auto_update_theme', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_translation', '__return_true' );

I exemplen ovan har vi just aktiverat automatiska uppdateringar. Men dessa filter ger oss större kontroll över uppdateringar. I följande exempel automatiserar vi automatiska uppdateringar för två specifika plugins:

function cb_auto_update_plugins ( $update, $item ) {
	$plugins = array ( 'hello', 'akismet' );
	if ( in_array( $item->slug, $plugins ) ) {
		// update plugin
		return true; 
	} else {
		// use default settings
		return $update; 
	}
}
add_filter( 'auto_update_plugin', 'cb_auto_update_plugins', 10, 2 );

Återuppringningsfunktionen innehåller två argument:

  1. $update: en boolean som ställer in om den ska uppdateras eller inte;
  2. $item: uppdateringserbjudandeobjektet.

Funktionen kontrollerar om objektet som ska uppdateras finns i $plugins array, och returnerar sedan true eller false i enlighet med detta.

Sist kan vi göra skillnad mellan utveckling, mindre och större uppdateringar genom att returnera true eller false genom följande filter:

add_filter( 'allow_dev_auto_core_updates', '__return_false' );
add_filter( 'allow_minor_auto_core_updates', '__return_true' );
add_filter( 'allow_major_auto_core_updates', '__return_true' );

Vi vet att en uppdatering ibland kan misslyckas. I värsta fall kan webbplatsen gå ner efter ett uppdateringsfel. Men lyckligtvis kan vi be WordPress att meddela oss med ett e-postmeddelande efter varje uppdatering (eller försök).

Resultat, avisering och felsökning av e-postmeddelanden

Beroende på resultatet av uppdateringsprocessen skickar WordPress ett annat e-postmeddelande till administratörsadressen:

  • ett resultatmeddelande skickas efter en automatisk kärnuppdatering;
  • ett e-postmeddelande skickas när WordPress inte kunde köra en automatisk uppdatering;
  • ett felsöknings-e-postmeddelande skickas i utvecklingsversioner av WordPress.

Varje gång en automatisk uppdatering lyckas eller misslyckas skickar WordPress ett resultat eller e-postmeddelande med ett av följande ämnen:

  • Din webbplats har uppdaterats till WordPress XXX (fall framgång)
  • WordPress XXX är tillgängligt. Uppdatera ! ( uppdatering misslyckades och en manuell uppdatering krävs: fall misslyckas)
  • URGENT: Din webbplats kan vara nere på grund av en misslyckad uppdatering ( uppdateringen misslyckades och WordPress kan vara nere: fallkritiskt)

De auto_core_update_send_email Filtervakterna resultera och e-postmeddelanden. Dessa e-postmeddelanden kan inaktiveras genom att returnera false enligt följande:

apply_filters( 'auto_core_update_send_email', '__return_false' );

Speciellt om du planerar att utöka automatiska uppdateringar till större kärn- och / eller tema- och plugin-utgåvor, kanske du föredrar att låta e-postmeddelanden för resultat och meddelanden vara aktiverade eller anpassa dem beroende på resultat eller uppdateringstyp. I följande exempel skickar WordPress inte e-postresultatet om det lyckas:

function cb_auto_core_update_send_email ( $send, $type, $core_update, $result ) {
	if ( !empty( $type ) && $type == 'success' ) {
		// don't send email
		return false; 
	}
		// use default settings
		return $send; 
	}
}
add_filter( 'auto_core_update_send_email', 'cb_auto_core_update_send_email', 10, 4 );

Återuppringningsfunktionen behåller följande argument:

  • $send är en boolean som bestämmer om du vill skicka ett resultat eller e-postmeddelande;
  • $type är en sträng som anger vilken typ av e-post som ska skickas (framgång, misslyckande eller kritisk);
  • $core_update är erbjudandet objektet uppdatering;
  • $result är resultatet för kärnuppdateringen (kan vara en WP_Error).

Som standard meddelas administratörer när uppdateringserbjudandet från WordPress.org sätter en viss flagga och installationen inte kan uppdateras. Meddelande-e-postmeddelandet skickas bara en gång per release. Den send_core_update_notification_email filter medger viss frihet i väder och när att skicka den här typen av meddelanden. Applicera filtret enligt följande:

apply_filters( 'send_core_update_notification_email', '__return_true' );

Slutligen automatic_updates_send_debug_email styr filtret felsöknings-e-postmeddelanden, som ger användbar logginformation om de utförda uppdateringarna. Som standard skickas dessa e-postmeddelanden av utvecklingsinstallationer. Att returnera falskt hindrar WordPress från att skicka felsöknings-e-postmeddelanden, medan returnering av true gör det möjligt för dessa e-postmeddelanden även i stabila installationer:

apply_filters( 'automatic_updates_send_debug_email', '__return_true' );

När och varför inaktivera WordPress automatiska uppdateringar

Den automatiska uppdateringsprocessen är en utmärkt funktion för många användare, eftersom de kan spara mycket tid och arbete.
Men även om det verkar som om automatiska uppdateringar är riktigt säkra , bör vi fråga oss om det alltid är en bra idé att aktivera dem alla.

Ibland kan vi uppleva inkompatibilitetsproblem i teman och plugins som kan avbryta vissa funktioner eller till och med bryta ner webbplatsen. Om webbplatsen är beroende av ett stort antal plugins kan det vara säkrare att utföra manuella uppdateringar, åtminstone för plugins. Processen en efter en gör att vi snabbt kan upptäcka problem som automatisering skulle göra det svårt att hitta.

Dessutom, om du är en utvecklare, bör du vara försiktig med namnen du väljer för dina teman och plugins även om du inte planerar att distribuera dem. När du kör uppdateringar letar WordPress i plugin-katalogen efter nya versioner av dina plugins och skriver över dina filer om ett plugin med samma namn hittas. Så om du tänker aktivera bakgrundsuppdateringar för teman och plugins, se till att ange unika namn i dina skript.

Ja, det är många bra saker för utvecklare. Men hur kan en användare som inte är utvecklare hantera automatiska uppdateringar?

Kontrollera WordPress automatiska uppdateringar med plugins

Om du inte är utvecklare kan du styra automatiska WordPress-uppdateringar med hjälp av ett plugin.

Easy Updates Manager tillåter administratörsanvändare att styra WordPress-uppdateringar på både en webbplats och flera webbplatser . Plugin gör det möjligt att hantera alla typer av WordPress-uppdateringar, och teman och plugins kan väljas individuellt för autouppdateringar. Ytterligare funktioner avser e-postmeddelanden, blockering av användare och loggning av plugin-uppdateringar.

Easy Updates Manager - manage WordPress automatic updates
Easy Updates Manager

I händelse av inkompatibilitet kan det vara nödvändigt att snabbt återgå till en tidigare version av ett tema eller plugin. WP Rollback låter dig återställa en tidigare version av alla installerade teman och plugins från Plugins-skärmen. Klicka bara på återställningslänken och plugin-programmet visar en lista över alla tillgängliga versioner.

Tyvärr kommer inte WP Rollback att vara till hjälp om din webbplats går ner, så glöm inte att säkerhetskopiera och läs noggrant online-dokumentationen.

WP-återgång
WP-återgång

Slutligen, om du behöver ett kompatibilitetstest för automatiska uppdateringar i din WordPress-installation, kommer Background Update Tester att tillhandahålla den information du behöver.

Automatiska uppdateringar för Premium-plugins och teman

Som utvecklare av premium WordPress-plugins eller teman är det din plikt att integrera en automatisk uppdateringsmekanism i dina produkter för att erbjuda samma sömlösa uppdateringsupplevelse som användare har förväntat sig med WordPress.org-produkter. Detta har blivit dagens marknadsstandard (av goda skäl). Du kan vara värd för premiumprodukterna själv och utveckla en uppdateringsmekanism, eller utnyttja plattformar som Freemius , Kernl eller WP Updates , som erbjuder ett säkert förvar och automatiska uppdateringar som en tjänst, out-of-the-box.

Sammanfattning

WordPress automatiska uppdateringar är en utmärkt funktion som kan spara mycket tid och arbete och låta oss hålla vår webbplats regelbundet uppdaterad. Men skulle du kunna aktivera alla typer av uppdateringar? Låt oss veta i kommentarerna nedan.

Carlo Daniele Kinsta

Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.