IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / Wordpress / WordPress:インポーターで<pre></pre>内のスペースが削除される

WordPress:インポーターで<pre></pre>内のスペースが削除される

2022/03/8 Wordpress, はてなブログ

はてなブログで運用している3つのサイトを WordPress に移行中です。すでにひとつは移行完了しています。

  • そんなには褒めないよ。映画評 – ネタバレレビュー・あらすじ

次に当サイトを移行しようとしているのですが、WordPress に付属している「Movable Type と TypePadインポーター」を使いますと、<pre></pre> でくくった整形済みのテキストのスペースが削除されてしまいフォーマットが崩れてしまいます。

  • スペースが削除されてしまう
  • 原因は $line = trim($line);
  • 対策
  • 結果

スペースが削除されてしまう

これがはてなブログでの <pre></pre> の表示です。

それを WordPress 付属の movabletype-importer インポーターでインポートしますとこういう結果になります。文字色はスタイルが設定していないためですのでこの問題とは関係がありません。

原因は $line = trim($line);

インポーターは /wp-content/plugins/movabletype-importer/movabletype-importer.php ですが、その340行目に

$line = trim($line);

というコードがあり、テキストファイルを1行ずつ取り出して行頭のスペースを削除してしまう処理があります。

これが原因ですね。

対策

インポーターは一度だけ使用する処理ですのでソースを書き換えても問題は発生しません。次のように書き換えます。

     while ( $line = $this->fgets($handle) ) {
// <pre></pre>内のスペースが削除されないように
            if(preg_match('/^(?=<pre.*)(?!.*<\/pre>)/', $line)){
                $my_flg = true;
            }else if(preg_match('/<\/pre>/', $line)){
                $my_flg = false;
            }
 
            if($my_flg){
                if(!preg_match( '/^[\r|\n|\r\n]/', $line)){
                    $line = preg_replace( '/\r|\n|\r\n/', '', $line);
                }
            }else{
                $line = trim($line);
            }
// ここまで(下の1行がオリジナル)
//          $line = trim($line);


            if ( '-----' == $line ) {
                // Finishing a multi-line field

結果

<pre></pre> 内のスペースが保持されるようになりました。

木下優樹菜写真集『CORRECT』

木下優樹菜写真集『CORRECT』

  • 作者:木下優樹菜
  • 双葉社

Amazon

WordPress:ローカル開発環境共有 Ubuntu + WSL2 + Docker + Dropbox
WordPress:Genesis Framework を使ったテーマ制作(1)
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

2023/02/8

WordPress:人気記事を直近の期間指定で表示する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress65
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com