wordpressの自動でページ分割をしてくれるプラグイン「Automatically Paginate Posts」を入れると、なぜか文中の段落や改行が消えてしまうという現象に遭遇しました。対象記事はすでに400本程あったので、手動でページ分割するというのも厳しく、なんとか自力で解決しました。
その手順をご紹介します。
現象
wordpressの自動でページ分割をしてくれるプラグイン「Automatically Paginate Posts」を入れると、なぜか一部の記事の文中の段落(<p></p>)や改行(<br>)が消えてしまう。プラグインを無効化すると、問題はなくなる。使用テーマはTCDのRUMBLEというものです。
こちらの記事を参考に手を加えてみるも解決せず。2行を削除すると、ページ分割自体がされなくなりました。
解決方法
プラグインのファイルの一部を書き換えることで解決しました。
▼ファイルの場所
/wp-content/plugins/automatically-paginate-posts/automatically-paginate-posts.php
▼373-374行目を修正
元のコード↓
$content = preg_replace( '#<p>(.+?)</p>#i', "$1\r\n\r\n", $content ); $content = preg_replace( '#<br(\s*/)?>#i', "\r\n", $content );
下記に修正↓
$content = preg_replace( '#<p>(.+?)</p>#i', "<p>$1\r\n\r\n</p>", $content );
$content = preg_replace( '#<br(\s*/)?>#i', "<br>", $content );
詳細
私がエンジニアではないので、あくまでも想定であることご了承ください。
コードをみる限り、本文中の<p>タグや<br>タグを正規表現へ置き換えているはずの箇所で、機能していないようでした。また、この2行そのものを削除すると、ページ分割されず。そのため、置換せずに、html自体はそのままにしてみたところ、うまくいきました。
最後に
ページ分割のプラグインは少ないので、もしかしたら手動かも!?と思いましたが、なんとか無事に済んでよかったです。ファイルをいじられる際には、ページが真っ白になる可能性もあるので、テストで行うなりお気をつけください。