Skip to content

toiee-lab/qhm-to-wp-migrator

Repository files navigation

QHM Migrator (QHM移行 WordPressプラグイン)

このプラグインの利用は、自己責任でお願いいたします。サポートはありません サポートが必要な方は、一部の業者様が提供されているので、インターネットで検索してご相談ください

このプラグインは「QHMおよびHAIK」から、WordPressへ移行するための支援プラグインです。

機能一覧

  • QHMとWordPressをスイッチ表示 : 通常のアクセスでは、QHMを表示します。WordPressにログイン(wp-admin にアクセスしログイン)すると、WordPressを表示します。この機能によって、編集者はWordPressを閲覧し、訪問者はQHMを見ることができます。裏側で、ゆっくりとWordPressを完成させることができます。同時に、QHM(HAIK)の編集も可能です(WordPressをログアウトして、QHMにログインする)

  • QHMのページ、ブログ、ブログカテゴリ、画像のインポート機能 : QHMのページ、ブログ、画像をWordPressに取り込むことができます。ページは固定ページへ、QBlogは、ブログ投稿にカテゴリも含めて取り込みます。またページ内で使われている「画像」や「メディア」をWordPressに取り込みます。

  • QHMの過去のページURLへのアクセスを、WordPressへ転送 : QHMとWordPressのURLは違います。QHMは、 /index.php?ページ名 ですが、WordPressは /ページ名 となります。このためWordPressに切り替えると過去のページへのアクセスが無効になるため、この転送を行います。

  • QHMのページURLへのアクセスで発生するWordPressの無限ループ問題を解決 : QHMのページURLに日本語が含まれている( index.php?日本語のページ )と、WordPressではリダイレクトがループ(なんども起こり)ページが表示できません。このプラグインを使えば、問題を解決できます。なお、存在しないページへの転送は、トップページ に転送します。

注意点

リダイレクトの問題が発生するので、QHM(HAIK)を運用していたドメインで、全く新しくWordPressでサイトを作り直す場合でも、本プラグインをインストールし、有効にしておいてください(インポート作業はせず、有効にだけする)ご利用がおすすめです。

なお、Google Search Console に登録し、サイトマップを提出することで短期間にURLを変更できます。そちらを活用することで、本プラグインを利用しない選択をとっても良いです。

ご利用方法

(1) バックアップする

いつでも、元に戻せるようにバックアップをしてください(FTPソフトを使うなどしてください)。

(2) PHPのバージョンを新しくする

PHPのバージョンを7以上に上げてください(最悪、5.6)。

PHPのバージョンを上げる際、QHMが v5.3未満の方は、QHMがエラーします。そこで、PHPのバージョンを上げるとともに、QHMのバージョンもアップしてください。QHM、HAIKのバージョンアップは、以下のページにあるソースコードをダウンロードし、オリジナルファイルが格納されているフォルダ(attach, backup, cache, cacheblog, cacheqhm, counter, diff, swfu/d, swfu/data, trackback, wiki)と設定ファイル(qhm_access.ini.txt, qhm_users.ini.txt, qhm.ini.php) を 取り除いたものをアップロード してください(再帰的アップロード)。

なお、以下に差分を用意していますので、ご利用ください(※ 予告なく削除されることがあります)

  • qhm-v5 差分 : PHP5.6 の場合は、こちらの v5 にアップデートしてください
  • qhm-v7.3.0 差分 : PHP7.x の場合は、こちらの v7.3 にアップデートしてください

※ エラーが起こった場合は、該当箇所を確認して、PHPのバージョンとの文法の違いに注目して、適宜作業してください。

(3) WordPressをダウンロード

WordPressの公式サイトで、最新のWordPressをダウンロードする

(4) WordPressのindex.phpを削除して、アップロードする

WordPressをアップロードする前に、index.php を 削除してから、WordPressのシステムをアップロードします。 忘れると、QHMが一時的に表示しなくなります。

(5) WordPressのデータベースを準備

WordPressで使うデータベースの準備をします。

(6) WordPressの初期設定

/wp-admin/ にアクセスして、WordPressの設定を行います。事前にデータベースの作成、ユーザー追加などを行っておきます(お使いのレンタルサーバーのマニュアルを参照)

(7) QHM移行プラグインをインストール、有効化

上記のダウンロードリンクから、ダウンロードします。次に プラグイン > 新規インストール でこのプラグインのファイルを指定し、アップロードし、有効化します

(8) indexファイルを適切に設定する

** : WordPressの管理画面で、 設定>QHM移行 と進みます。indexファイルの設定のためのボタンをクリックして、適切に設定してください。

(9) QHMの移行作業

設定>QHM移行で、インポートなどができます。これらを使ってデータをインポートします。またWordPressの見た目などを調整します。

QHMからのデータ移行に時間がかかる場合があります。その場合、何度も「既に取り込んだデータをスキップ」を選んで、何度も実行してください。なお、画像ファイル、ページ、ブログが大量にある場合、時間がかかります。また格安のレンタルサーバーなどですと、処理パフォーマンスが足りず、何十回もの再読み込みが必要になる可能性があります。Local by Flywheel などを使って、ローカルで作業するなど工夫をしてください。

(10)QHM移行完了する

設定>QHM移行で、「公開」を設定します。すると、QHMを表示せず、WordPressを表示するようになります。

(11) PHPを最新バージョンに(推奨)

PHPも、WordPressも常に更新し続けましょう。


仕様

仕組み

このプラグインは、 index_qhm_proxy.php にアクセスして、 <!-- BODYCONTENTS START --> から <!-- BODYCONTENTS END --> までのHTMLを取り込みます。取り込んだHTMLファイルを解析して、ブログ投稿に必要なタイトルなどを取得しています。

もし、QHMのテンプレートファイルを独自に改変して、上記のコメントが表示されない場合は正常に動作しません。

注意点

  • ページ名が長すぎると( 200byte以上 )、インポートをせず、エラーを表示します(ページ名を短くしてから、再度、インポートしてください)
  • 移行中(WordPressとQHMがスイッチ動作しているとき)に、WordPressのURLや存在しないディレクトリやファイルへのアクセスは、QHMのトップページが表示されます。
  • .htaccess、index.php などを不用意に変更(意図していなくても、SEO系プラグインや、QHMのインストーラーなどで)すると、動作がおかしくなることがありますのでご注意ください
  • 移行中にQHMを表示したい場合は、WordPressをログアウトしてください。なお、同時にQHMもWordPressも見たい場合は、ブラウザの「プライベートウィンドウ(シークレットウインドウ)」機能をお使いください

できること

  • 隠しページ、通常のページを全て読み込みます
  • :config や SiteNavigation などのコンテンツ以外のページは読み込みません
  • ブログのカテゴリを登録、反映します
  • ページ、ブログに使われている画像やファイルは、取り込まれますが、それ以外は取り込みません
  • 取り込む対象のファイルは、swfu/d フォルダ以下に限ります

Change log

ver 0.9.2

2021/01/25

  • QBlog機能のブログの転送は、自動では行われない不具合を修正( get_page_by_pathメソッドは、初期値では page しか取得しないため、postも含める必要がありました)
  • WordPress5.6、PHP7.3.5 で動作テストしました(動作します)

ver 0.9.1

  • 日本語ページの古い添付ファイル(attachプラグインを使って、refプラグインで参照するもの。SWFUではないもの)を読み込めないバグを解決

ver 0.9

  • WordPressとQHMをスイッチする(転送しない)ようになり、より安全に、確実に移行できるようになりました
  • index_qhm.php 問題について解決しました
  • indexファイルを簡単に設定できるようになりました

ver 0.8.4 (Aug 19, 2017)

  • ナビ、サイドバー作成支援ツールのURLを変更
  • アップデートファイルの置き場所を変更

ver 0.8.3 (Aug 17, 2017)

  • 長いファイル名のページを事前にチェックするだけでなく、問題が起こるページをすべてリストアップするように修正
  • 名前を変える方法を解説したページリンクを追加

ver 0.8.2 (Aug 14, 2017)

  • 長いファイル名のページを事前にチェックして、インポートを中止するように設定しました
  • ナビ、メニュー、フッターなどに貼り付けている画像も取り込むように変更しました

ver 0.8.1 (Aug 9, 2017)

  • index_wp.php, index_qhm.php が同封されていなかったので追加(GitHubに慣れてない)
  • index.php が QHMのままの場合、修正する方法 (ver0.6で導入) が有効になっていなかった不具合を修正
  • 移行を行いやすくするために、便利なリンクを追加しました

ver 0.6 (Aug 8, 2017)

  • アップデート通知を受け取れるように修正しました
  • index.php、index_qhm.php が間違っているときに修正するための方法を追加しました

ver 0.5 (Aug 7, 2017)

  • WordPressにログインしているなら、QHMを公開している状態でも、index.php?XXXX を /XXXX/ に転送するように修正
  • Readmeに移行のための手順を記載

ver 0.4 (Jul 24, 2017)

*既存ページを読み込まないオプションの追加、attachを取り込む、実行時間の延長

  • 既存の投稿、ページをslug で検索をかけて、取り込まずにスキップできるようにしました
  • これは、実行時間が短いサーバー、処理が遅いサーバー、ページが多すぎる場合に、数回に分けて、ページをインポートするのに役立ちます
  • PHPの実行時間を180秒に延長することを試み見ます。これにより、かなり長く実行できるようになるはずです
  • 今回のバージョンから、古い添付ファイル(refを使った attachフォルダのもの) も取り込めるように改良しました

ver 0.3 (Jul 15, 2017)

PHP5.6以上でないと動かないようにチェックをかける

  • PHP5.6以上でないと、動作できないように修正。
  • 不要なコメントなどを削除
  • PHPの実行環境情報を記載

ver 0.2

PHP5.4に対応

  • メンバ変数、メソッドの修飾子などを削除