Når det kommer til sikkerhed, ved vi, hvor vigtigt det er regelmæssigt at opdatere WordPress-installationer (kerne, temaer og plugins), og hvor lang tid opgraderingsprocessen kan tage for os, især når vi har installeret et stort antal plugins. Det anbefales ofte at følge disse trin:

  1. Backup af filer og databasetabeller
  2. Deaktiver plugins
  3. Opdatering
  4. Aktivér plugins en efter en
  5. Tjek hjemmesiden

Det kunne være en kedelig opgave for et enkelt websted og kunne være et irriterende og komplekst job, når vi skal opdatere fem, ti eller flere websteder.

Med det specifikke formål at forbedre installationssikkerheden og gøre webstedsadministrationen nemmere introducerede WordPress 3.7 automatiske opdateringer. Som standard er denne seje funktion aktiveret til mindre udgivelser (dvs. vedligeholdelses- og sikkerhedsudgivelser) og oversættelsesfiler, men det er muligt at tilpasse enhver form for opdateringer. Så i dette indlæg vil vi se på, hvordan man automatiserer opgraderingsprocessen, når som helst en ny version af WordPress-kerne, tema eller plugin frigives. Lad os dykke dybt ned i automatiske WordPress-opdateringer!

WordPress automatiske opdateringer
WordPress automatiske opdateringer

Indeks for automatiske opdateringer

WordPress automatiske opdateringer

Der er fire typologier af opdateringer og automatiske WordPress-opdateringer:

  1. Kerneopdateringer
  2. Plugin opdateringer
  3. Temaopdateringer
  4. Opdateringer af oversættelsesfiler

Kerneopdateringer er opdelt i tre undertyper:

  1. Kerneudvikling (kun tilgængelig for udviklingsinstallationer)
  2. Mindre kerneopdateringer (vedligeholdelse og sikkerhed) – aktiveret som standard i stabile installationer
  3. Større kerneopdateringer

WordPress giver dig mulighed for at automatisere opdateringsprocessen for enhver af disse typologier, der giver to wp-config.php-konstanter og et stort antal API-filtre.

Kontrol af baggrundsopdateringer gennem wp-config.php

WordPress leverer et par wp-config.php-konstanter, der giver os mulighed for at kontrollere automatiske opdateringer. Indstilling af AUTOMATIC_UPDATER_DISABLED til sand deaktiverer enhver form for automatisk opgradering:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE giver os mulighed for at kontrollere kerneopdateringer (mindre, større og udviklingsudgivelser). Denne konstant kan defineres som følger:

# 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 udviklingsinstallationer er WP_AUTO_UPDATE_CORE som standard sand. I stabile installationer er det som standard mindre.

Af hensyn til fuldstændigheden skal jeg nævne en ekstra konstant, der kan defineres til at deaktivere autoopdateringer. Hvis værdien sættes til sand, deaktiveres alle filredigeringer, endda temaer og plugininstallationer og manuelle opdateringer.

define( 'DISALLOW_FILE_MODS', true );

I stedet foretrækker du muligvis at definere konstanten DISALLOW_FILE_EDITS, som ville deaktivere fileditoren, men holde sikkerheden om installation og opdatering.

Relateret vejledning: wp-config.php-fil – En dybdegående visning af, hvordan du konfigurerer WordPress

Styring af baggrundsopdateringer gennem API-filtre

Konfigurationskonstanter giver en generel måde at aktivere eller deaktivere automatiske opdateringer på. Men WordPress leverer et antal filtre, der giver en dybere kontrol over enhver form for opdateringer.

Bemærk: Filtre skal bruges i plugins, og “skal bruge plugins” er en god mulighed for baggrundsopdateringer. mu-plugins findes i en bestemt mappe inde i /wp-content og aktiveres automatisk af WordPress. Disse plugins vises ikke på WordPress Plugins-skærmen, så de kunne ikke ved et uheld blive deaktiveret eller fjernet af webstedsadministratorerne. For en dybere oversigt henvises til Codex-dokumentationen

For det første har returnering af true gennem filteret automatic_updater_disabled den samme effekt som at definere AUTOMATIC_UPDATER_DISABLED-konstanten til true i wp-config.php:

add_filter( 'automatic_updater_disabled', '__return_true' );

Vi kan kontrollere enhver af opdateringstypologierne gennem auto_update_$type, der aktiverer eller deaktiverer opdatering afhængig af værdien af ​​$ type ('core', 'plugin', 'theme' eller 'translation').

Så vi kan automatisere alle kerneopdateringer ved at returnere true via filteret auto_update_core:

add_filter( 'auto_update_core', '__return_true' );

Jeg har følgende eksempel aktiverer vi automatiske opdateringer til temaer, plugins og oversættelser:

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

I eksemplerne ovenfor har vi netop aktiveret automatisk opdatering. Men disse filtre giver os større kontrol over opdateringer. I det følgende eksempel automatiserer vi automatisk opdatering til specifikke 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 );

Callback funktionen indeholder til argumenter:

  1. $update: en boolean, der indstiller vejret til at opdatere eller ej;
  2. $item: objektet til opdateringstilbud.

Funktionen kontrollerer, om elementet, der skal opdateres, er i $plugins-array, og returnerer derefter true eller false i overensstemmelse hermed.

Til sidst kan vi gøre forskel på udvikling, mindre og større opdateringer ved at returnere true eller false gennem følgende filtre:

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 ved, at en opdatering lejlighedsvis kan mislykkes. I værste fald kan webstedet gå ned efter en opdateringsfejl. Men heldigvis kan vi bede WordPress om at underrette os med en e-mail efter enhver opdatering (eller forsøg).

Resultat, underretnings- og fejlretnings-e-mails

Afhængigt af resultatet af opdateringsprocessen sender WordPress en anden e-mail til administratoradressen:

  • en resultat-e-mail sendes efter en automatisk kerneopdatering;
  • en notifikations-e-mail sendes med besked, når WordPress ikke kunne køre en automatisk opdatering;
  • en e-mail til fejlretning sendes i udviklingsversioner af WordPress.

Hver gang en automatisk opdatering lykkes eller mislykkes, sender WordPress et resultat eller en e-mail med underretning med et af følgende emner:

  • Dit websted er opdateret til WordPress XXX (sags succes)
  • WordPress XXX er tilgængelig. Vær sød at opdatere! (opdatering mislykkedes, og der kræves en manuel opdatering: sag mislykkes)
  • URGENT: Dit websted kan være nede på grund af en mislykket opdatering (opdatering mislykkedes, og WordPress kan være nede: sagskritisk)

auto_core_update_send_email-filteret styrer resultat- og underretnings-e-mails. Disse e-mails kan deaktiveres ved at returnere false som følger:

apply_filters( 'auto_core_update_send_email', '__return_false' );

Især hvis du planlægger at udvide automatiske opdateringer til større kerne- og/eller tema- og pluginudgivelser, foretrækker du måske at lade resultat- og underretnings-e-mails være aktiveret eller tilpasse dem afhængigt af resultatet eller opdateringstypologien. I det følgende eksempel sender WordPress ikke e-mail-resultatet i tilfælde af succes:

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 );

Callback-funktionen har følgende argumenter:

  • $send er en boolean, der bestemmer, om der skal sendes et resultat eller en e-mail med underretning
  • $type er en string, der indstiller typen af ​​e-mail, der skal sendes (succes, fail eller kritisk);
  • $core_update er opdaterings-objektet;
  • $result er resultatet for kerneopdateringen (kan være en WP_Error).

Som standard underrettes administratorer, når opdateringstilbuddet modtaget fra WordPress.org sætter et bestemt flag, og installationen ikke kan opdateres. Meddelelse-e-mailen sendes kun en gang pr. frigivelse. send_core_update_notification_email-filteret tillader noget skøn i vejret, og hvornår man skal sende denne type meddelelser. Anvend filteret som følger:

apply_filters( 'send_core_update_notification_email', '__return_true' );

Endelig styrer filteret automatic_updates_send_debug_email debugging emails, som giver nyttige logoplysninger om de udførte opdateringer. Disse e-mails sendes som standard af udviklingsinstallationer. Returnering af falsk forhindrer WordPress i at sende debug-e-mails, mens returnering af sand vil aktivere disse e-mails selv i stabile installationer:

apply_filters( 'automatic_updates_send_debug_email', '__return_true' );

Hvornår og hvorfor deaktiveres automatiske WordPress-opdateringer

Den automatiske opdateringsproces er en fantastisk funktion for mange brugere, da de kan spare meget tid og arbejde.

Men selvom det ser ud til, at autoopdateringer virkelig er sikre, bør vi spørge os selv, om det altid er en god ide at aktivere dem alle.

Lejlighedsvis kunne vi opleve inkompatibilitetsproblemer med temaer og plugins, der kunne afbryde nogle funktioner eller endda nedbryde hjemmesiden. Hvis hjemmesiden er afhængig af et stort antal plugins, kan det være mere sikkert at udføre manuelle opdateringer, i det mindste for plugins. Den en-for-en-proces giver os mulighed for hurtigt at opdage problemer, som automatisering ville gøre det svært at finde.

Desuden, hvis du er en udvikler, skal du være forsigtig med de navne, du vælger til dine temaer og plugins, selvom du ikke planlægger at distribuere dem. Når du kører opdateringer, ser WordPress i Plugin Directory til nye versioner af dine plugins og overskriver dine filer, hvis der findes et plugin med samme navn. Så hvis du mener at aktivere baggrundsopdateringer til temaer og plugins, skal du sørge for at indstille unikke navne til dine scripts.

Ja, det er mange gode ting for udviklere. Men hvordan kan en ikke-udviklerbruger administrere automatiske opdateringer?

Styr WordPress automatiske opdateringer med plugins

Hvis du ikke er en udvikler, kan du kontrollere WordPress automatiske opdateringer ved hjælp af et plugin.

Easy Updates Manager giver adminbrugere mulighed for at kontrollere WordPress-opdateringer på både enkeltwebsite- og multisite-installationer. Pluginet giver mulighed for at administrere alle typer af WordPress-opdateringer, og Temaer og plugins kan vælges individuelt til autoopdateringer. Yderligere funktioner vedrører underretnings-e-mails, brugerblokering og logning af plugin-opdateringer.

Easy Updates Manager - manage WordPress automatic updates
Easy Updates Manager

I tilfælde af inkompatibilitet kan det være nødvendigt hurtigt at vende tilbage til en tidligere version af et tema eller plugin. WP Rollback giver dig mulighed for at gendanne en tidligere version af alle installerede temaer og plugins fra skærmen Plugins. Klik bare på linket Tilbagekald, så viser pluginet dig en liste over alle tilgængelige versioner.

Desværre vil WP Rollback ikke være til hjælp, hvis dit websted går ned, så glem ikke at tage backup og læs omhyggeligt online-dokumentationen.

WP Rollback
WP Rollback

Endelig, hvis du har brug for en kompatibilitetstest på automatiske opdateringer i din WordPress-installation, vil Background Update Tester give de oplysninger, du har brug for.

Automatiske opdateringer til premium plugins og temaer

Som udvikler af premium WordPress-plugins eller temaer er det din pligt at integrere en automatisk opdateringsmekanisme i dine produkter for at tilbyde den samme problemfri opdateringsoplevelse, som brugere er kommet til at forvente med WordPress.org-produkter. Dette er blevet dagens markedsstandard (af en god grund). Du kan selv være host for premium-produkterne og udvikle en opdateringsmekanisme eller udnytte platforme som Freemius, Kernl, or WP Updates, der tilbyder et sikkert lager og automatiske opdateringer som en service, out-of-the-box.

Resumé

WordPress automatiske opdateringer er en fantastisk funktion, der kan spare os for meget tid og arbejde og give os mulighed for at holde vores hjemmeside regelmæssigt opdateret. Men ville du aktivere alle slags opdateringer? Lad os vide i kommentarerne nedenfor.

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.