Bambooo!


WordPressのカスタムフィールドで改行問題

wp
この所、WordPressでの構築案件を数件こなしていたのですが、少々ハマってしまった問題がありました。それはカスタムフィールド内でデータを入力する際にうまく改行がされないといった事なのですが、これまでは手作業で「<br>」を入れてもらう事で対応してもらっていたのですが、今回は基本的にビジュアルモードでコンテンツの挿入や再編集を行いたいとの要望でした。
通常

 echo get_post_meta($post->ID,'Read',true);

の所を

echo nl2br(get_post_meta($post->ID,'Read',true));

に修正し、何とか改行が反映されるようにはなったのですが、フィールド内にテーブルタグを挿入すると何故か不要な連続した改行タグが勝ってについてしまうという問題・・・。これはヤバイ。テーブルが使えないのは致命的という事で、かなり悩みました。一先ず「nl2br」をはずした所、当たり前のように全てベタ打ち状態に(汗)すでにかなりの投稿データが入っていたのでこれは参った。そこで、「PS Disable Auto Formatting」というプラグインを投入。このプラグインはWordPressでよくある「HTML編集モードでコードを記述したら、改行が消えた。。。」「正しいコードを書いたのに、貼り付けたら入れ子構造がおかしい不正なコードになってしまっている。」「ビジュアルモードとHTMLモードを切り替えると改行が消える」などなど。自動整形に起因する問題を解決するだけでなく、ビジュアルエディタでの編集をも可能にし、よりWordPressの使い勝手を向上させるといった素晴らしいプラグインなのです!更に一括整形処理機能というものがあります。プラグイン有効後は元来段落や改行を付加していた処理が行われなくなるため、作成済みの記事の表示が変わってしまいます。そうです。ベタウチの状態になってしまいます。そこでこの一括整形処理機能を使用し過去の記事全てに改行タグを挿入するといったモノなのです。流石に本番サーバーで実行するのは怖かったので、とりあえずテストサーバーで実行してみる事に。すると、なぜか管理画面もサイト自体も真っ白になってしまい、アクセス出来ない状態に・・・。(泣)ファイルのパーミッションやPHPのメモリも調べたのですが、とくに問題ない様子。原因を特定できず仕方ないのでWordPressを再インストールしプラグインやテーマをセットアップ。さらに本番サーバーのphpMyadminから全データをエクスポートし、試しにエクスポートファイルから「\r\n」の改行コードをに全て「<br>」に置換し再度テストサーバーにインポートした所、何と無事に改行されてレイアウトの崩れ(ベタ打ち)が解消されました。そして、テーブルタグを挿入した所、無事に不要な改行タグも入らなくなりました。今回の作業でこれまでのコンテンツデータ一部手作業での整形作業は残っておりますが、とりあえずクライアントもほっとしている様子で助かりました。まだ安心はできないのですが・・・(苦笑)

2011/02/16 Posted in 仕事関係 by AT (この記事は投稿から15年が経過しています)

Leave a Reply

CAPTCHA