簡単な検索と置換を行うSQLクエリ
-
-
クエリに慣れていない場合は、検索と置換プラグイン(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
-
WordPressの機能を使ってURLを更新してみませんか? http://codex.wordpress.org/Moving_WordPress詳細すべてWhy not use WordPress functionality to update the URL? http://codex.wordpress.org/Moving_WordPress details everything
- 0
- 2014-11-18
- Alex Older
-
このためのプラグインがあります.バックエンドを快適に使用できるようにし、必要に応じて、ポストコンテンツやその他のフィールドのURLを置き換えます: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 回答
- 投票
-
- 2011-01-25
URLが保存されるテーブルはwp_optionsです.サイトのURLを使用する列を更新する必要があります:
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"
値が不足している可能性がありますが、この検索/置換プロセスを再度実行すると、更新する必要のある値とテーブルに気づき、このスクリプトに追加することができます.
WordPress Codexには、サイトのURLを変更する方法に関する優れたガイドがあります.おそらくそれはあなたにとってさらに便利です:
サイトのURLの変更 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
-
データベース全体で検索/置換を行う方法はありませんか?言い換えれば...たとえば、メディアライブラリを含むさまざまな場所のURLを置き換える必要があることに気づきました...基本的にすべてのフィールドについてデータベース全体の検索/置換があった場合、これは解決します問題.ご協力いただきありがとうございますis 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
-
私が答えに追加した新しいリンクをチェックしてください.それが道だと思います.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
-
これは、シリアル化されたデータでは機能しません.一部のテーマ構成が完全に破損する可能性があります.This will not work for serialized data. It might completely break some theme configuration.
- 2
- 2017-10-17
- Christian Lescuyer
-
- 2011-01-25
オプション、投稿、コンテンツの投稿、メタの投稿を行うのに最適:
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');
phpMyAdminとMySQLを使用したデータの検索|も参照してください. PacktPublishing.および
Search RegEx は、優れたWPプラグインです.すべての投稿とページを検索してGrepに置き換えます. 2015年6月16日更新:データベースダンプで上記のような単純な検索/置換を行うとシリアル化されたデータが破損するため、次の文でリンクされているツールを使用する方がはるかに優れています./em> interconnectit.comWordPressシリアル化PHP検索置換ツールこのようにすると、相互接続スクリプトがあらゆる場所でURLを変更するため、シリアル化されたデータを壊したり、投稿コンテンツに対してRegExを実行したりする必要がなくなります.私は常にそのツールを使用して、サイトを別のドメインに移行したり、httpからhttpsにグローバルに変更して、プラグインなしでSSLを強制し、コンテンツ内のすべてのURLを変更して安全でない要素エラーを防止しています.
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.
-
新しいドメインに移動する場合でも、GUIDを変更しないでください.投稿が新しいデータベースにエクスポート/インポートされるとIDが変更される可能性があるため、投稿を一意にID化するために使用されます.1つには、RSSリーダーはGUIDを使用して、特定の記事が読まれたかどうかを判断します.GUIDを変更すると、すべての記事が効果的に再公開されます.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は次のように述べています.「GUIDを変更しないでください...」Rubbish.@taylordewey said: "Don't ever change the guid..." Rubbish.
- 0
- 2012-06-17
- markratledge
-
@songdogtechごみである*理由*を説明するように注意してください.@songdogtech Care to explain *why* it is rubbish?
- 1
- 2013-03-06
- shea
-
ドメインを変更する場合は、選択の余地がなく、GUIDを変更する必要があります.RSSリーダーからのフォールアウトは、支払う最低価格です.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
-
なぜGUIDを変更する必要があるのでしょうか.Why would one _have_ to change the GUID?
- 1
- 2016-08-11
- kaiser
-
GUIDにはURLが含まれていますが、投稿を参照するときに(メニューなどで)リンクを作成するために使用されることはありません.したがって、それらを変更することは完全に許容されます.Despite 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
-
これは、シリアル化されたデータでは機能しません.一部のテーマ構成が完全に破損する可能性があります.実際、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
これは私が使用する優れたドロップインスクリプトであり、WPがオプションを格納するために使用するシリアル化された配列で美しく機能します.セキュリティ上の大きなリスクがあるため、完了したら必ずリモートサーバーから削除してください.
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
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/
-
なぜ私が-1になったのかわかりません.このスクリプトは、SQLステートメントよりもはるかに優れています.フィードバックをお願いします?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
-
SQLを知らない人が使用できるツールは、SQLで書く人に腹を立てていますa 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
これには、 WP-CLI を使用します.これは、最も簡単で、シリアル化されたデータを処理します.
wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
実際のデータベースを操作する代わりに、変更をSQLファイルに書き込むオプションもあります.
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
-
群を抜いて最も堅牢で最速のソリューション.wp-cliはもう一度日を節約しますby far the most robust and fastest solution. wp-cli saves the day once again
- 1
- 2018-06-19
- ryanrain
-
- 2011-01-25
これを行う必要はありません.相対パスを使用できます.
subdomain.soemthing.com/image.jpgの代わりに何かをリンクする場合-たとえば/image.jpgを使用します
このように、そもそも問題に直面することはありません.
それ以外の場合は、mysql更新ステートメントに使用できます
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’);
-
ありがとう...ええ、次回はそれをします.SQLステートメントはデータベース全体(すべてのテーブルを含む)で置換を検索しますか?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.commireilleが上記で提供したSQLステートメントは、特定のテーブルの特定のフィールドの文字列を置き換えるための一般的なMySQLコマンドです.このステートメントを記述されたとおりに実行しようとすると、機能しません.このコマンドを機能させるには、TABLE_NAMEとFIELD_NAMEを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
-
相対パスを使用したい場合でも、ワードプレスの多くの部分がフルパスを自動挿入する傾向があることにも注意してください.これを実際に機能させるには、https://wordpress.org/plugins/root-relative-urls/のようなプラグインが非常に役立ちます.Note 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
WordPressドメインを変更するには、ローカルホストからサイトを公開する必要があります.これは更新クエリの完全なリストです:
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');
- 必要に応じて、WPでデフォルトになっていない他のテーブルも追加する必要があります.
更新: 検索置換DB バージョン3.1.0は、開発者向けのユーザーフレンドリーなフロントエンドツールであり、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.
-
これは、シリアル化されたデータでは機能しません.テーマの構成が完全に壊れる可能性があります.This will not work for serialized data. It might completely break theme configuration.
- 2
- 2017-10-17
- Christian Lescuyer
-
- 2015-05-06
実際には、SQLクエリを使用する必要はなく、テーマのwp_configファイルとfunctions.phpファイルを少し調整するだけです.WordpressCodexでこのトピックをチェックしてください: 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
-
これは正しくありません.残念ながら、WordPressは一部のURLをテキストとしてデータベースに保存します.This isn't correct. WordPress unfortunately stores some URL in the database as text.
- 1
- 2015-09-30
- s_ha_dum
新しいウェブサイトを作成するときはいつでも、最初に「stage.domain-name.com」のようなサブドメインにステージングサイトを作成します.
すべてが正常に機能した後、データベースをエクスポートし、notepad ++で開き、「subdomain.domain-name.com」の検索/置換を実行して「domain-name.com」に置き換えます...最後にインポートしますライブサイトの新しいデータベースに追加します.
私の質問は...phpmyadminを使用してデータベース全体でこの単純な検索/置換を実行したい場合、どのSQLクエリを実行する必要がありますか?
-CH