Come aggiornare i link dei media in WordPress dopo la migrazione?

12 giu 2017, 17:58:03
Visualizzazioni: 25.6K
Voti: 2

Ho migrato il mio sito WordPress su un nuovo host e un nuovo URL. Ho eseguito tutte le tipiche operazioni di ricerca e sostituzione nel database mysql e il sito funziona perfettamente.

Tuttavia, nei link delle mie immagini manca .co.uk, quindi non funzionano.

Immagine sotto

La cosa strana è che tutti gli URL delle immagini sono corretti nel codice sorgente dei post. Ma nella mia libreria media, manca .co.uk in tutti gli URL.

Come posso aggiungere nuovamente .co.uk agli URL della mia libreria media?

2
Commenti

La ricerca e sostituzione di solito non funziona su tutto in WP perché alcuni dei dati sono serializzati. Cerca un "plugin per la migrazione del database" - ce ne sono diversi che funzionano bene - che troverà tutti i vecchi URL e li sostituirà anche nelle copie serializzate, come gli URL della libreria media.

WebElaine WebElaine
12 giu 2017 18:40:23

Fammi indovinare... Hai sostituito domain.com con cosworth-europe.co.uk vero? Questo sostituirà la stringa senza aggiornare i dati serializzati. Dovresti usare un plugin come Better Search Replace se vuoi sostituire i dati serializzati.

Johansson Johansson
12 giu 2017 19:44:40
Tutte le risposte alla domanda 6
4

Come menzionato nei commenti sotto la tua domanda, alcuni dati nel database di WordPress sono serializzati e quindi non è possibile modificarli con un semplice trova e sostituisci.

Dovresti leggere la sezione Spostare WordPress del codex. In particolare la parte su Cambiare il Nome del Dominio e gli URL. Solitamente uso un plugin o uno strumento da riga di comando, a seconda di cosa ho a disposizione.

Plugin:

Better Search Replace è un plugin utile raccomandato nell'articolo sopra. Ci sono altri plugin che fanno le stesse cose, ma questo è la mia preferenza. Alcune caratteristiche che apprezzo sono:

  • Supporto per dati serializzati.
  • La possibilità di selezionare singole o multiple tabelle.
  • Una funzione "dry run" per testare e verificare le modifiche prima di applicarle definitivamente.
  • Requisiti minimi del server (tutto ciò di cui hai bisogno è un'installazione di WP).

Strumento CLI:

Un'altra opzione che gestisce i dati serializzati è lo strumento search-replace di WP-CLI. Questa opzione viene utilizzata dalla riga di comando tramite SSH e richiede che wp-cli sia installato sul server. Puoi consultare la documentazione per tutte le opzioni e gli esempi disponibili, ma l'utilizzo di base è:

# Cerca il vecchio nome di dominio e lo sostituisce con uno nuovo
$ wp search-replace 'http://old.example.dev' 'http://new.example.com'
12 giu 2017 19:49:08
Commenti

Se ritieni che questa risposta dovrebbe essere votata negativamente, potresti per favore lasciare un commento qui spiegando il motivo in modo che io possa aggiornarla o rimuoverla? Penso che questa risposta sia valida ma sono aperto alle critiche. Grazie! :-)

DaveLak DaveLak
12 giu 2017 20:57:00

Non capisco perché questa risposta sia stata votata negativamente. Io l'ho votata positivamente. Better Search and Replace è ottimo per dati serializzati come widget, meta box personalizzati e questa situazione.

Christina Christina
12 giu 2017 22:35:28

Grazie Christina, penso che il voto negativo sia dovuto al fatto che la raccomandazione del plugin fosse l'unico suggerimento. È comprensibile, in genere non mi piacciono le risposte che raccomandano solo plugin, ma in questo caso ho ritenuto che fosse giustificato. In ogni caso, ho aggiornato la mia risposta includendo un riferimento all'articolo del Codex che lo suggerisce. Spero che sia utile a qualcuno!

DaveLak DaveLak
13 giu 2017 02:10:57

Better Search Replace è un plugin fantastico e lo uso continuamente. Il voto negativo potrebbe essere dovuto al fatto che, affinché BSR sostituisca l'URL dei Media, è necessario selezionare "Sostituisci GUID" che non è selezionato per impostazione predefinita. Non funzionava per me finché non ho controllato la tabella e visto che l'URL è memorizzato nel campo GUID.

Jared Pomranky Jared Pomranky
19 giu 2019 21:38:10
0

Questo è un problema abbastanza comune, quindi penso meriti una risposta approfondita che copra la situazione per cui la maggior parte delle persone probabilmente sta cercando su Google quando trova questo articolo.

Per il Problema Specifico di Montrealist

Per la domanda specifica, sembra che @montrealist abbia eseguito in modo improprio un processo di ricerca/sostituzione nel database ad un certo punto. Vedo che l'URL per i media è:

http://www.cosworth-europe/sam/wp-content/...

Immagino che dovrebbe essere:

http://www.cosworth-europe.co.uk/sam/wp-content/...

Ad un certo punto hai perso il TLD dell'host, quindi questa è la prima cosa che varrebbe la pena verificare qui. Potresti rieseguire una ricerca e sostituzione con qualcosa del genere:

  • Cerca: //www.cosworth-europe/
  • Sostituisci con: //www.cosworth-europe.co.uk/

Questo dovrebbe correggere il problema specifico che vedo qui, assumendo che le mie supposizioni siano corrette.

Per Chi Cerca su Google Problemi Simili

WordPress memorizza molti riferimenti agli URL all'interno del suo database. Non c'è un'unica configurazione di origine per l'host di un sito, quindi dovrai eseguire un processo di ricerca/sostituzione nel database per risolvere questo problema. A seconda di dove vengono utilizzate quelle immagini, potrebbe essere necessario assicurarsi che anche le stringhe serializzate vengano sostituite correttamente.

Per la maggior parte dei casi, consiglierei questa come la soluzione migliore:

  1. Installa il plugin Better Search Replace
  2. Cerca e sostituisci il tuo dominio escludendo il protocollo, quindi cerca //www.vecchiodominio.com con //www.nuovodominio.com
  3. Testa e conferma che non ci siano problemi, quindi disinstalla e rimuovi il plugin

Non consiglio tipicamente i plugin come soluzioni, sviluppo quasi tutto in modo minimale da solo, ma per questo caso specifico, personalmente userei il plugin WP Migrate DB Pro per questo e altri trasferimenti relativi al database. Il plugin Better Search and Replace è sviluppato dalla stessa azienda, Delicious Brains, e fornisce esattamente lo stesso processo di ricerca e sostituzione. È un'ottima opzione per risolvere a fondo questo problema.

Se incontri problemi e non riesci ad accedere a WordPress, puoi connetterti via (S)FTP alla directory di installazione e impostare o aggiornare le seguenti costanti nel tuo file wp-config.php:

define( 'WP_HOME', 'https://www.esempio.com' );
define( 'WP_SITEURL', 'https://www.esempio.com' );

Tuttavia, questo dovrebbe essere fatto solo temporaneamente: una volta corretto il problema nel database, è meglio rimuoverlo dal file wp-config.php in seguito.

Modificare l'URL del Sito

5 mag 2020 19:01:12
0

La mia opzione 'home' nella tabella wp_options mancava del dominio .co.uk. Errore sciocco! La prossima volta proverò i plugin di migrazione che mi hai consigliato.

13 giu 2017 11:12:32
0

Sono venuto a cercare questo - ho provato anche il plugin Velvet Blues Update URL, ma nessuno dei due ha funzionato. Poi mi sono reso conto, perché diavolo non aggiornarlo direttamente via MySQL?

Prima, aggiorna la tua tabella wp_posts. Poi il tuo SQL sarà così:

    UPDATE `wp_posts` SET post_content = REPLACE(post_content, 'oldurl', 'newurl') WHERE post_content like "%oldurl%"
5 mag 2020 18:40:48
0

Dovresti utilizzare il plugin WP all in one migration per migrare il sito web. https://wordpress.org/plugins/all-in-one-wp-migration/

5 mag 2020 18:43:51
2

Cambia la posizione dei file caricati nella dashboard di WordPress Dashboard > Impostazioni > Media > Caricamento file.

10 dic 2021 11:14:02
Commenti

Per favore [modifica] la tua risposta e aggiungi una spiegazione: perché questa soluzione potrebbe risolvere il problema?

fuxia fuxia
10 dic 2021 12:35:51

Non esiste questa impostazione in Dashboard > Impostazioni > Media > Caricamento file

foxbeefly foxbeefly
14 ott 2024 13:45:26