[wp]プラグイン『NextGEN Gallery』を使っているwordpressサイトの引っ越しで古いドメインが残る時の対処方

プラグイン『NextGEN Gallery』を使ったWordPressサイトの移行作業で、ドメインが変わったのにナゼか古いドメインの入ったパスが『wp_head()』『wp_footer()』から吐き出されるという問題が発生、解決方法は以下。

問題点

移行後、データベースの古いドメインを全て置換したのに、javascript と css の指定している部分が古いドメインのパスになってしまう。

■移行方法

[wp] wordpressを丸ごと移管/移行させる手順

問題となるコード

↓wp_head()に『NextGEN Gallery』が吐き出すコード(【移行前のドメイン】のまま)。

<link rel='stylesheet' id='fancybox-0-css'  href='http://【移行前のドメイン】/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/static/fancybox/jquery.fancybox-1.3.4.css?ver=3.8' type='text/css' media='all' />

↓wp_footer()に『NextGEN Gallery』が吐き出すコード(【移行前のドメイン】のまま)。

<script type='text/javascript' src='http://【移行前のドメイン】/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/static/fancybox/jquery.easing-1.3.pack.js?ver=3.8'></script>
<script type='text/javascript' src='http://【移行前のドメイン】/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/static/fancybox/jquery.fancybox-1.3.4.pack.js?ver=3.8'></script>
<script type='text/javascript' src='http://【移行前のドメイン】/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/static/fancybox/nextgen_fancybox_init.js?ver=3.8'></script>

原因

どうやら、このプラグインのURL設定情報はbase64エンコードされ、下書き記事(Draft)としてデータベースに書き込まれているらしい。

対応方法

NextGEN_Gallery_base64

■修正の流れ

wp_post のテーブルの中に post_title=fancybox というデータがり、それを base64_decode すると古いドメインを確認できるので、それを新しいドメインに置換した後に base64_encode したものをデータベースに上書きすることで修正完了です。

■修正の手順(具体例)

ますは、テーブル名「wp_posts」»カラム名「post_title」が『fancybox』となっている投稿を探す。

該当記事のpost_contentに下記のようなbase64エンコードされた文字列があるので、一旦デコードする。
※base64デコードは下記の参考サイトからでも可。

eyJJRCI6NDk0LCJwb3N0X2F1dGhvc..(長い文字列中略)...CJmb3JtYXRfY29udGVudCI6IiJ9==


base64デコードすると下記の様な文字列になる。

{"ID" : ***,"post_author" : "1","post_date" : "20**-**-** ** : ** : **","post_date_gmt" : "0000-00-00 00 : 00 : 00","name" : "fancybox","title" : "Fancybox","code" : "class=\"ngg-fancybox\" rel=\"%GALLERY_NAME%\"","values" : [],"css_stylesheets" : "http : \/\/【移行前のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/jquery.fancybox-1.3.4.css","scripts" : "http : \/\/【移行前のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/jquery.easing-1.3.pack.js\r\nhttp : \/\/【移行前のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/jquery.fancybox-1.3.4.pack.js\r\nhttp : \/\/【移行前のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/nextgen_fancybox_init.js","display_settings" : [],"post_title" : "fancybox","post_excerpt" : "","post_status" : "draft","comment_status" : "closed","ping_status" : "open","post_password" : "","post_name" : "","to_ping" : "","pinged" : "","post_modified" : "20**-**-** ** : ** : ** 14 : 42 : 32","post_modified_gmt" : "0000-00-00 00 : 00 : 00","post_parent" : "0","guid" : "http : \/\/【移行前のドメイン】\/?p=***","menu_order" : "0","post_type" : "lightbox_library","post_mime_type" : "","comment_count" : "0","filter" : "raw","format_content" : ""}


上記の文字列の【移行前のドメイン】を【移行前のドメイン】に置換する。

{"ID" : ***,"post_author" : "1","post_date" : "20**-**-** ** : ** : **","post_date_gmt" : "0000-00-00 00 : 00 : 00","name" : "fancybox","title" : "Fancybox","code" : "class=\"ngg-fancybox\" rel=\"%GALLERY_NAME%\"","values" : [],"css_stylesheets" : "http : \/\/【移行後のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/jquery.fancybox-1.3.4.css","scripts" : "http : \/\/【移行後のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/jquery.easing-1.3.pack.js\r\nhttp : \/\/【移行後のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/jquery.fancybox-1.3.4.pack.js\r\nhttp : \/\/【移行後のドメイン】\/wp-content\/plugins\/nextgen-gallery\/products\/photocrati_nextgen\/modules\/lightbox\/static\/fancybox\/nextgen_fancybox_init.js","display_settings" : [],"post_title" : "fancybox","post_excerpt" : "","post_status" : "draft","comment_status" : "closed","ping_status" : "open","post_password" : "","post_name" : "","to_ping" : "","pinged" : "","post_modified" : "20**-**-** ** : ** : ** 14 : 42 : 32","post_modified_gmt" : "0000-00-00 00 : 00 : 00","post_parent" : "0","guid" : "http : \/\/【移行後のドメイン】\/?p=***","menu_order" : "0","post_type" : "lightbox_library","post_mime_type" : "","comment_count" : "0","filter" : "raw","format_content" : ""}


ドメインを置き換えた文字列をbase64エンコードし直し該当記事の post_content に戻して保存する。
※base64エンコードは下記の参考サイトからでも可。

eyJJRCI6NDk0LCJwb3N0X2F1dGhvc..(長い文字列中略)...iwiZm9ybWF0X2NvbnRlbnQiOiIifQ==


サイトを表示してソースを確認。

以上です、編集長。

参考サイト

■ヒントになったフォーラム

http://wordpress.org/support/topic/nextgen-is-requesting-the-wrong-url-adress
http://wordpress.org/support/topic/moved-sitecannot-find-where-to-replace-this

■base64を手軽にエンコード、デコードできるサイト(感謝!)

http://base64encode.uic.jp/
http://user1.matsumoto.ne.jp/~goma/js/base64.html

Similar posts