ムーバブルタイム(MT)からワードプレスのインポート

ムーバブルタイム(MT)からワードプレスのインポート

  • 2018-10-23  最終更新日:2018-10-23

今回はムーバブルタイプからワードプレスのインポートについてです。デフォルトで使っている場合の記事は多くありますのでそちらをご参考になさってください。今回はアーカイブテンプレートでアーカイブパスを変更されている場合にインポートするアドレスと異なっているときの対処方法をご紹介します。

ムーバブルタイプでエクスポートしたときにBASENAMEという項目がありますがここがファイル名になります。post_1234という風に出ているかアルファベットで記載されているはずです。

今回は意図的にアーカイブパスを変更していて例えばpostがentryとか時間の数値をアドレスにしている場合はBASENAMEと相違ができますのでそこのところを対処してインポートする方法をご紹介したいと思います。


スポンサーリンク


BASENAMEのアンダーバーとハイフン問題

因みにですが、post_1234がワードプレスにインポートされてpost-1234になってしまうという場合はワードプレスのプラグインフォルダ内のmovabletype-importerフォルダにあるmovabletype-importer.phpを書き換えを行います。(ワードプレスの管理画面からツール-インポートからMovableTypeとTypePadをインストール済み前提になります。)

387行目あたりから以下の通り記載されているはずです。

} else if ( 0 === strpos($line, 'BASENAME:') ) {
        $slug = trim( substr($line, strlen('BASENAME:')) );
        if ( !empty( $slug ) )
          $post->post_name = $slug; // ここを変更する
      } else if ( 0 === strpos($line, 'STATUS:') ) {
        $status = trim( strtolower( substr($line, strlen('STATUS:')) ) );

$post->post_name = $slug;$post->post_name = str_replace( '_', '-', $slug );と書き換えます。以下の通り。

} else if ( 0 === strpos($line, 'BASENAME:') ) {
        $slug = trim( substr($line, strlen('BASENAME:')) );
        if ( !empty( $slug ) )
          $post->post_name = str_replace( '_', '-', $slug ); // 変更後
      } else if ( 0 === strpos($line, 'STATUS:') ) {
        $status = trim( strtolower( substr($line, strlen('STATUS:')) ) );

これでインポートすればWordPress側とMovable TypeのBASENAME(ファイル名)が同じになります。内部リンクでリンクの相違がある場合はこのようにして合わせます。

MTからのインポートファイルが2MB以上ならwp-contentディレクトリにmt-export.txtリネームしてアップロードしてインポートした方がよいです。

アーカイブマッピング対策

さて、ここからが本題です。アーカイブマッピング対策の場合は、ムーバブルタイプのエキスポート部分を修正します。ImportExport.pmのファイルをちょっと変更します。BASENAMEの下にPERMALINKとIDを追記します。

/htdocs/cgi-bin/lib/MT/ImportExport.pm

630行目あたりの#⇒は追加したところです(#⇒矢印は記載しないでください)

    require MT::Template;
    require MT::Template::Context;
    my $tmpl = MT::Template->new;
    $tmpl->name('Export Template');
    $tmpl->text(<<'TEXT');
AUTHOR: <$MTEntryAuthor strip_linefeeds="1"$>
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
BASENAME: <$MTEntryBasename$>
#⇒ PERMALINK: <$MTEntryPermalink$>
#⇒ ID: <$MTEntryID$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$><MTIfNonEmpty tag="MTEntryCategory">
PRIMARY CATEGORY: <$MTEntryCategory$></MTIfNonEmpty><MTEntryCategories>
CATEGORY: <$MTCategoryLabel$></MTEntryCategories>
DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$><MTEntryIfTagged include_private="1">
TAGS: <MTEntryTags include_private="1" glue=","><$MTTagName quote="1"$></MTEntryTags></MTEntryIfTagged>

この通りに修正した後エクスポートすると例ですが以下のように出力されます。export-000014-2018102300000.txtというダウンロードファイルの一部分です。

AUTHOR: admin
TITLE: タイトルタイトルタイトルサンプルサンプルテストテスト
BASENAME: post_3650
PERMALINK: https://www.its-office.jp/blog/2018/10/231612/
ID: 3650
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: richtext
ALLOW PINGS: 1
PRIMARY CATEGORY: cms
CATEGORY: cms
DATE: 10/23/2018 06:12:28 PM

上記見てもらえればわかりますがBASENAMEとPERMALINKのアドレスが違います。このままワードプレスにインポートするとpost-3650というファイル名になりますが実際のアドレスは231612という数値なので内部リンクしている場合はリンク切れになります。

このような記載が数百とか数千もあると変更が大変なのでここで正規表現で処理を行います。

まず正規表現ができるテキストエディタでエクスポートしてきたファイルを開きます。因みにCotEditorを使っていますがWindowsなら秀丸エディタとかでもできると思います。

検索文字に

BASENAME: ([!-~]+)

と入力して置換は空にします

MT

これでBASENAMEと記載された文字列(post_xxx)は消えたはずです。

さらに検索文字列は以下

PERMALINK: https?://www.its-office.jp/[a-z]+/\d{4}/\d{2}/([!-~]+)/

置換文字列は以下

BASENAME: $1

と記載して変更します。

MT

BASENAME: xxxxという風に変更されているはずです。 これでアーカイブマッピングアドレスに変更できました。後はワードプレスにインポートするだけです。

参考になれば幸いです。


∞Tadashi Suyama∞

ムーバブルタイプ MT インポート エクスポート wordpress
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

サイト内検索

最近の投稿

アイキャッチ
アイキャッチ画像がない場合に記事内はじめの画像をアイキャッチにする方法とリンク先画像取得-WordPress

今回はワードプレスのアイキャッチです。記事内はじめの画像を取ってくる方法は結構出回っているので、リンク先の画像を撮ってくる方法をプラスしたやり方になります。 記事内はじめの画像を取得する方法は...

10 Nov 2018

アイキャッチ
豊富で魅力的な画像素材サイトPxBee

画像素材サイトのご紹介です。Pxbeeというfotor提供のサイトです。1枚から購入ができて金額もお手頃です。普段はアドビのアドビストックを利用していますが検索したときの画像の量が多い気がします...

06 Nov 2018

アイキャッチ
Caffeineの代替えにAmphetamine

強制的にスリープさせないようにするアプリAmphetamine【アンフェタミン】なんですが、名前の由来はアメリカでは注意欠陥・多動性障害の薬として使われており、日本では覚醒剤に指定されているよう...

25 Oct 2018

アイキャッチ
macOS Mojaveを早速インストールしてみた感想

さて、いつもなら安定してきたぐらいにアップデートを行うのですが今回は時間もあったのでmacOS Mojaveにアップデートをしてみました。 入れてみてすぐに感じた感想は重い。。。もっさり感が半...

24 Oct 2018

アイキャッチ
ムーバブルタイム(MT)からワードプレスのインポート

今回はムーバブルタイプからワードプレスのインポートについてです。デフォルトで使っている場合の記事は多くありますのでそちらをご参考になさってください。今回はアーカイブテンプレートでアーカイブパスを...

23 Oct 2018

著者

ウェブエンジニアのSUYAMAのブログです。

WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。

フッターイメージ