私はwww.domain1.com
からwww.domain2.com
に移動しました
ただし、イメージパスはまだwww.domain1.com/wp-content/uploads...
を指しています。そのため、www.domain1.com
がダウンしたとき、私のすべての画像はもう表示されていません。
すべての添付ファイルがwp_posts
を指すようになったwww.domain2.com/wp-content/uploads...
テーブルを更新しましたが、画像はwww.domain2.com
に存在し、それでも画像が表示されません。キャッシングがオフになっていますか
古い画像のURLを変更する必要があるようです。それをするための最も簡単で最速の方法はMySQLデータベースで検索と置換をすることです。
PHPMyAdmin(通常はWebホストによって提供される)またはSequel Proなどの他のMySQL編集ソフトウェアを使用して、WordPress管理領域に触れることなくMySQLデータベースに変更を加えることができます。つまり、SQLクエリを1つずつ作成するのではなくSQLクエリを実行することで、大規模な変更を加えることができます。これは面倒で時間がかかります。
最初にデータベースのバックアップを取ってください。 PHPMyAdminでこれを行うには、左側のサイドバーからデータベースを選択してから、[エクスポート]をクリックします。 "単純な"方法で結構ですが、もっと細かく制御したい場合は "カスタム"方法でたくさんの選択肢が得られます。
バックアップを取った後、SQLタブをクリックして以下をテキストエリアに貼り付けてください。
UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newurl') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'oldurl','newurl');
UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newurl');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'oldurl','newurl');
そして、 "oldurl"を古いURLに、 "newurl"を新しいURLに置き換えます。ただし、http://のまま末尾のスラッシュは削除します。もう一度確認して、問題なければ[Go]ボタンをクリックしてください。
サイトに移動して、画像が機能しているかどうかを確認します。そうでない場合、それは通常タイプミスが原因です。これはプロセスの最初に行ったバックアップからデータベースを復元してやり直すことで解決できます。
このサイト には、WordPressドメイン移行のための拡張ガイドがあります。これには、SQLクエリを生成するためのスクリプトへのリンクもあります。
あなたはすでにあなたの答えを知っているかもしれませんが、私は強くあなたにDBSR(db検索置換)を使うことを強くお勧めしますdomain1のすべての出現をdomain2で置き換えます。そのためのツールがあります。これはかなりきれいです: https://github.com/interconnectit/Search-Replace-DB
プロセス全体を説明します。良いUIがあります。
これにより、DBレコードに関してすべて問題ないことが確認できます。
リンクだけで質問に答えるという危険を冒して、このページ( http://codex.wordpress.org/Moving_WordPress )にある以下のステップがあなたが探しているものだと思います。
ドメイン名とURLを変更する
データベース内の古いドメイン名のすべてのインスタンスを安全に新しいドメイン名に変更する必要があります。次のいずれかを使用してそれを実行できます。
Wp_postsテーブルで検索と置換のみを実行してください。
すべてのインスタンスを安全に変更するには、 WordPressデータベースの検索と置換スクリプト を使用します。 (あなたが開発者であれば、このオプションを使用してください。以下の15ステップの手順とは対照的に、1ステップのプロセスです)
必要に応じて、オンラインツールを使用することもできます(サーバーにスクリプトをアップロードすることに煩わされたくない場合) オンラインWordPressシリアル化PHP検索と置換 またはシリアル化されたデータを同時に修正しながら、新しいURLでURLを指定します。
そのページには、他にも多くの役立つWP移行情報があります。
とても簡単な方法
このプラグイン Velvet をあなたのワードプレスバックエンドにインストールしてください。
今ベルベットの設定に行き、あなたの古いドメインを入力し、新しいドメインを入力してください。更新ボタンを押す。あなたは終わった
あなたはwp_posts
データをwww.domain2.com
に更新したと言っていますが、あなたのwp_options
テーブルにはまだhome
とsiteurl
があり、他のものとの間で変更する必要があります。
すべてのデータが新しいドメインに更新されたことを確認するには、次の手順に従ってください。
replace
( screenshot )に変更します。http://www.domain2.com/replace
)、 検索/置換ツールが表示されますsearch for…
フィールドに、新しいURLをreplace with…
フィールドに入力してください。スクリプトを実行する前に、actionsの下にあるdry runボタンをクリックして、何が置き換えられるのかを確認できます。完了したら、/replace/
フォルダを必ず削除してください。
あなたのサイトがかなり小さいなら、あなたは….
domain1.com
を見つけてdomain2.com
に置き換えます。EDIT 03/18/2016
上記の手順を完了したら、次の手順に進みます。
function mbe_migrate_widgets() {
}
function mbe_migrate_widgets() {
$old_domain = 'http://dev.';
$new_domain = 'http://beta.';
}
function mbe_migrate_widgets() {
$old_domain = 'http://dev.';
$new_domain = 'http://beta.';
global $wpdb;
// Get all Widgets
$widgets = $wpdb->get_results(
"
SELECT `option_id`, `option_name`
FROM $wpdb->options
WHERE `option_name`
LIKE '%widget_%'
"
);
}
function mbe_migrate_widgets() {
$old_domain = 'http://dev.';
$new_domain = 'http://beta.';
global $wpdb;
// Get all Widgets
$widgets = $wpdb->get_results(
"
SELECT `option_id`, `option_name`
FROM $wpdb->options
WHERE `option_name`
LIKE '%widget_%'
"
);
if ( ! $widgets ) {
return false;
}
$actions = array();
foreach ( $widgets as $widget ) {
// Retrieve the Widget data.
$widget_data = get_option( $widget->option_name );
}
return $actions;
}
function mbe_migrate_widgets() {
$old_domain = 'http://dev.';
$new_domain = 'http://beta.';
global $wpdb;
// Get all Widgets
$widgets = $wpdb->get_results(
"
SELECT `option_id`, `option_name`
FROM $wpdb->options
WHERE `option_name`
LIKE '%widget_%'
"
);
if ( ! $widgets ) {
return false;
}
$actions = array();
foreach ( $widgets as $widget ) {
// Retrieve the Widget data.
$widget_data = get_option( $widget->option_name );
// Update the Widget data changing old domain to new domain.
$update = update_option(
$widget->option_name,
recursive_array_replace( $old_domain, $new_domain, $widget_data )
);
if ( $update ) {
$actions['success'][] = $widget->option_id;
} else {
$actions['failed'][] = $widget->option_id;
}
}
return $actions;
}
// Recursive String Replace - recursive_array_replace(mixed, mixed, array);
function recursive_array_replace( $find, $replace, $array ) {
if ( ! is_array( $array ) ) {
return str_replace( $find, $replace, $array );
}
$newArray = array();
foreach ( $array as $key => $value ) {
$newArray[ $key ] = recursive_array_replace( $find, $replace, $value );
}
return $newArray;
}
そこにあります。その関数を一度実行すると、すべてのウィジェットが魔法のように再び機能し始めるはずです。
注: このコードを配置する場所や実行方法は、ユーザーによって異なります。それに応じて、変数$old_domain
および$new_domain
も置き換えてください。
追加の注意事項: また、この例はウィジェットにのみ影響することに注意してください。シリアル化されたデータにURLを含むWebサイトの他の部分がある場合は、それに応じてデータベースクエリを変更してください。 (私はコードのこの部分について話しています:SELECT option_id, option_name FROM $wpdb->options WHERE option_name LIKE '%widget_%'
)
私はこのトピックに関する私のブログへのリンクを投稿するつもりですが、 "spammy"と表示したくないです。これは本質的に私が 03/18/2016 のように私のウェブサイトで書いた記事からのコピー/ペーストです。この回答の内容は古くなっている可能性があり、私のウェブサイトの記事の内容は将来関連性が増す可能性があります。興味のある方は、私のウェブサイトへのリンクについて私のプロフィールをチェックしてください。
シリアル化されたデータの有用な説明: serialize()された値の解剖学 。