Quale SQL Query per fare una semplice ricerca e sostituzione
-
-
Senon haifamiliarità con le query,provailplug-in Cercae sostituisci,http://wordpress.org/extend/plugins/search-and-replace/If you're not familiar with queries try the Search and Replace plugin, http://wordpress.org/extend/plugins/search-and-replace/
- 0
- 2011-01-26
- t31os
-
Perchénon utilizzare lafunzionalità di WordPressper aggiornare l'URL? http://codex.wordpress.org/Moving_WordPress descrivetuttoWhy not use WordPress functionality to update the URL? http://codex.wordpress.org/Moving_WordPress details everything
- 0
- 2014-11-18
- Alex Older
-
C'è unpluginper questo.Consente un comodo utilizzo delbackende sostituisce anche l'URLnelpost-contente alcuni altri campi,se lo desideri: https://wordpress.org/plugins/better-search-replace/There is a plugin for this. It allows comfortable use of the backend and also replaces the URL in the post-content and some other fields, if you want to: https://wordpress.org/plugins/better-search-replace/
- 0
- 2015-07-23
- simonthesorcerer
-
7 risposta
- voti
-
- 2011-01-25
Latabellain cui viene salvatoiltuo URL è wp_options.Dovresti aggiornare le colonne che utilizzano l'URL deltuo sito:
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl" UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"
Potreiperdere qualche valore,ma ogni volta cheesegui dinuovo questoprocesso di ricerca/sostituzione,puoinotarei valorie letabelle che dovrebberoessere aggiornatie aggiungerli a questo script.
WordPress Codex ha unabellaguida su come cambiare l'URL di un sito,forse è ancorapiù comodoperte: Modifica dell'URL del sito
The table where your URL is saved is wp_options. You should do an update on the columns that use the URL for your site:
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl" UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"
I might be missing some value, but whenever you do this find/replace process again, you can notice the values and tables that should be updated and add them to this script.
WordPress Codex has a nice guide on how to change a site URL, maybe that's even handier for you: Changing the Site URL
-
non c'è unmodoperfare una ricerca/sostituzione sull'intero database?In altreparole ... honotato adesempio che hobisogno di sostituiregli URLin unmucchio diposizioni diverseinclusa la libreriamultimediale ... Se cifosse una ricerca/sostituzioneper l'intero databaseessenzialmenteper ogni campo,allora questo risolverebbeilproblema.Grazieper l'aiutois there not a way to do a find/replace on the entire database? In other words... I noticed for example that I need to replace the URLs in a bunch of different locations including the media library.... If there was a find/replace for the entire database essentially for every field then this would solve the problem. Thanks for your help
- 1
- 2011-01-25
- NetConstructor.com
-
Controlla quelnuovo collegamento che ho aggiunto alla risposta.Penso che sarebbe la strada dapercorrere.Check out that new link I added on the answer. I think that would be the way to go.
- 0
- 2011-01-25
- Fernando Briano
-
Questononfunzioneràperi dati serializzati.Potrebbe rompere completamente alcune configurazioni deltema.This will not work for serialized data. It might completely break some theme configuration.
- 2
- 2017-10-17
- Christian Lescuyer
-
- 2011-01-25
Opzioni,post,contenuto delposte meta deipostmigliori dafare:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
Vedi anche Ricerca di dati utilizzandophpMyAdmine MySQL| Packt Publishing. E Search RegEx è unbuonplugin WPperpoterper cercaree sostituire con Grepin tuttii poste lepagine.
Aggiornamento 16/06/2015: l'utilizzo dello strumento collegatonellafrase successiva èmoltomeglio,poiché una semplice ricerca/sostituzione come soprain un dump del databaseinterromperài dati serializzati. Vedi interconnectit.com WordPress Serialized PHP Search Replace Tool. In questomodo,noninterrompii dati serializzatie non avraibisogno dieseguire RegEx sul contenuto delpost,poiché lo script diinterconnessione cambiagli URL ovunque. Uso sempre questo strumentopermigrarei sitiin domini diversi opereseguire semplicemente unamodificaglobale da http a httpsperforzare SSL senzaplug-ine modificaretuttigli URLnel contenutoperevitareerrori dielementinon sicuri.
Best to do options, posts, post content and post meta:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
Also see Searching Data using phpMyAdmin and MySQL | Packt Publishing. And Search RegEx is a good WP plugin to be able to search and replace with Grep through all posts and pages.
Update 6/16/2015: Using the tool linked in the next sentence is much better, as a simple find/replace as above in a database dump will break serialized data. See interconnectit.com WordPress Serialized PHP Search Replace Tool. This way, you don't break serialized data and won't need to run RegEx on post content, as the interconnect script changes URLs everywhere. I use that tool all the time to migrate sites to different domains, or to simply do a global change from http to https to force SSL without plugins and change all URLs in content to prevent insecure element errors.
-
Non cambiaremaiilguid,anche se vaiin unnuovo dominio.Viene utilizzatoperidentificarein modo univocoilpostpoiché l'IDpuò cambiare sei post vengonoesportati/importatiin unnuovo database.Perprima cosa,i lettori RSS userannoil GUIDper dire se unparticolare articolo è stato letto omeno.Lamodifica del GUID ripubblicheràefficacementetuttii tuoi articoli.Don't ever change the guid - even if going to a new domain. It's used to uniquely ID the post as the ID can change if the posts are being exported/imported into a new database. For one thing, RSS readers will use the GUID to tell if a particular article has been read or not. Changing the guid will effectively republish all your articles.
- 2
- 2012-06-16
- Taylor Dewey
-
@taylordewey ha detto: "Non cambiaremaiilguid ..." Spazzatura.@taylordewey said: "Don't ever change the guid..." Rubbish.
- 0
- 2012-06-17
- markratledge
-
@songdogtech Tiinteressa spiegare *perché * è spazzatura?@songdogtech Care to explain *why* it is rubbish?
- 1
- 2013-03-06
- shea
-
Se stai cambiando dominio,semplicementenon hai sceltae devi cambiarei GUID.Fallout dai lettori RSS è unprezzominimo dapagare.If you're changing domains, you simply don't have a choice and have to change GUIDs. Fallout from RSS readers is a minimal price to pay.
- 0
- 2015-11-06
- markratledge
-
Perché si dovrebbe cambiareil GUID?Why would one _have_ to change the GUID?
- 1
- 2016-08-11
- kaiser
-
Nonostantei GUID contengano un URL,non vengono utilizzatiper creare collegamenti (adesempionei menu) quando sifa riferimento aipost.E quindi _non_ cambiarli èperfettamente accettabileDespite GUID's containing a url, they aren't used to create links (for example in menu's) when referencing posts. And so _not_ changing them is perfectly acceptable
- 0
- 2017-05-27
- Chris
-
Questononfunzioneràperi dati serializzati.Potrebbe rompere completamente alcune configurazioni deltema.Effettivamente utilizza uno strumento come Interconnect/IT.This will not work for serialized data. It might completely break some theme configuration. Indeed use a tool such as Interconnect/IT’s.
- 1
- 2017-10-17
- Christian Lescuyer
-
- 2011-08-02
Questo è un ottimo script drop-in che usoe funzionamagnificamente congli array serializzati che WP utilizzapermemorizzare le opzioni.Assicurati solo dieliminarlo daltuo server remoto quando haifinitoperché è unenorme rischioper la sicurezza.
https://interconnectit.com/products/search-and-sostituisci-database-wordpress/
This is a great drop-in script that I use and it works beautifully with the serialized arrays that WP uses to store options. Just make sure to delete it from your remote server when you're done because it's a HUGE security risk.
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
-
Non soperché sono stato -1.Questo script èmoltomeglio di un'istruzione SQL.Feedbackperfavore?I don't know why I was -1'd. This script is much better than a SQL statement. Feedback please?
- 2
- 2011-08-03
- lancemonotone
-
uno strumento che lepersone chenon conoscono sqlpossono usare,sconvolge coloro che scrivonoin sqla tool that people who dont know sql can use, is upsetting to those who write in sql
- 1
- 2013-06-23
- Jon
-
- 2016-04-27
Per questo utilizzo WP-CLI perché lotrovoilpiù sempliceesiprende cura dei dati serializzati.
wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
C'è anche un'opzione che scrive lemodifichein unfile SQLinvece dimanipolareil databaseeffettivo:
wp search-replace foo bar --export=database.sql
For this I use WP-CLI because I find it the easiest and it takes care of serialized data.
wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
There is also an option that writes your changes into an SQL file instead of manipulating the actual database:
wp search-replace foo bar --export=database.sql
-
digran lunga la soluzionepiù robustae veloce.wp-cli salva ancora una volta lagiornataby far the most robust and fastest solution. wp-cli saves the day once again
- 1
- 2018-06-19
- ryanrain
-
- 2011-01-25
non devifarlo,puoi utilizzarepercorsi relativi.
quando colleghi qualcosainvece di sottodominio.soemthing.com/image.jpg - usa/image.jpgperesempio
in questomodonon dovrai affrontareilproblemain primo luogo.
altrimentiper un'istruzione di aggiornamentomysqlpuoi usare
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
you do not have to do this , you can use relative paths.
when you are linking something instead of subdomain.soemthing.com/image.jpg - use /image.jpg for example
like this you won't face the problem in the first place.
otherwise for a mysql update statement you can use
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
-
Grazie ... sì,lofarò laprossima volta.L'istruzione SQLesegue una sostituzionefind sull'intero database (compresetutte letabelle)?Thanks... yeah I will do that next time. The SQL statement does a find replacement on the entire database (including all tables)?
- 0
- 2011-01-25
- NetConstructor.com
-
@ NetConstructor.com L'istruzione SQLfornita damireille sopra èil comando MySQLgenericoper sostituire una stringain un campo specificoin unatabella specifica.Seprovassi aeseguire questaistruzioneesattamente come è stata scritta,nonfunzionerebbe.Affinché questo comandofunzioni,ènecessariomodificare TABLE_NAMEe FIELD_NAMEin un campoe unatabella reali utilizzati da WordPress.@NetConstructor.com The SQL statement mireille gave you above is the generic MySQL command for replacing a string in a specific field in a specific table. If you tried running this statement exactly as it was written, it wouldn't work. For this command to work, you'd need to change the TABLE_NAME & FIELD_NAME to a real field and table used by WordPress.
- 0
- 2011-01-26
- Manzabar
-
Nota anche che anche se desideri utilizzarepercorsi relativi,molteparti di wordpresstendono ainserire automaticamentepercorsi completi.Perfarlofunzionare davvero unplugin come: https://wordpress.org/plugins/root-relative-urls/èmolto,molto utileNote also that even if you desire to use relative paths, lots of parts of wordpress tend to auto-insert full paths. To really get this working a plugin like: https://wordpress.org/plugins/root-relative-urls/ is very, very helpful
- 0
- 2014-09-15
- benz001
-
- 2011-11-24
Per cambiareil dominio wordpress ciò di cui abbiamo spessobisogno,potrebbeessere rendereil sito live da localhost: questo è unelenco completo di query di aggiornamento:
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_url = replace(link_url, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_image = replace(link_image, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); /*UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl' OR option_name = 'widget_text' OR option_name = 'dashboard_widget_options';*/ UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
- Dobbiamo aggiungere anche altretabelle chenon sonopredefinite con WP,senecessario.
AGGIORNAMENTO: Cerca Sostituisci DB la versione 3.1.0 è uno strumentofront-endintuitivoper sviluppatori,che consente dieseguire azioni di ricerca/sostituzione a livello di database,chenon danneggiano le stringhe ogli oggetti serializzati PHP.
To change the wordpress domain what we often need, may be to make the site live from localhost: This is a complete list of update queries:
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_url = replace(link_url, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_image = replace(link_image, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); /*UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl' OR option_name = 'widget_text' OR option_name = 'dashboard_widget_options';*/ UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
- We have to also add other tables which are not default with WP if necessary.
UPDATE: Search Replace DB version 3.1.0 is a user-friendly, front-end tool for developers, that allows you to carry out database wide search/replace actions, that don't damage PHP serialized strings or objects.
-
Questononfunzioneràperi dati serializzati.Potrebbeinterrompere completamente la configurazione deltema.This will not work for serialized data. It might completely break theme configuration.
- 2
- 2017-10-17
- Christian Lescuyer
-
- 2015-05-06
In realtà,non ènecessario utilizzare una query SQL solo alcunemodifichenelfile wp_confige functions.phpneltema.Dai un'occhiata a questo argomentoin Wordpress Codex: https://codex.wordpress.org/Changing_The_Site_URL
Actually, you don't have to use a SQL query just some adjustments in wp_config and functions.php file in your theme. Check out this topic in Wordpress Codex: https://codex.wordpress.org/Changing_The_Site_URL
-
Questonon è corretto.WordPresspurtroppomemorizza alcuni URLnel database cometesto.This isn't correct. WordPress unfortunately stores some URL in the database as text.
- 1
- 2015-09-30
- s_ha_dum
Ogni volta che creo unnuovo sito web,creoprima un sito di staging su un sottodominio come "stage.domain-name.com".
Dopo chetuttofunziona correttamenteesportoil database,lo aproin notepad ++e faccio una ricerca/sostituzioneper "sottodominio.dominio-name.com"e lo sostituisco con "nome-dominio.com" ...finalmente loimportain unnuovo databaseperil sito live.
Lamia domanda è ... quale query SQL dovreieseguire se volessi soloeseguire questa semplice ricerca/sostituzione sull'intero database utilizzandophpmyadmin?
-CH