サポート » その他 » 長い記事が表示されない

  • 以前は海外の無料サーバを利用してましたが最近調子が悪いため、ロリポップで有料サーバを借りて、そこへブログを移転しました。古いブログからXML形式でデータをエクスポートし、新しいブログでインポートしましたが、長い記事1件だけは、投稿内容が何も表示されず、コメントだけが表示されます。何か記事の長さに制限などあるのでしょうか? 記事本文のインポートは問題なくできてました。

    [古いサーバ]
    管理画面のツールからXML形式でエキスポート

    [移転先のサーバ]
    ロリポップ
    WordPress 3.0
    MySQL 5.1.34
    PHP 5.2.6
    管理画面のツールからXMLファイルをインポート

    記事の長さをいろいろ調整すると、大体7100バイト程度で記事本文が表示されなくなり、コメントだけの表示になります。それ以下の場合は記事本文とコメントの両方が表示されます。
    何か解決方法などありましたら宜しくお願いします。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • 特にWordPress側には文字数制限は無いとおもわれます。

    記事本文のインポートは問題なくできてました。

    phpmyadmin などではきちんとインポートされてる事が確認できているという事でしょうか。

    ロリポップを使った事ないので確定的な事は言えず推測になってしまうのですが、
    MySQLの設定による制限オーバーでかなにかで接続が途中で遮断されてるのではないでしょうか?共有レンタルサーバのDBは結構貧弱です。

    あとは本文中にきちんと閉じられてないタグがあるとか、そのくらいしか原因が思いつきませんでした。

    トピック投稿者 chawa

    (@chawa)

    Heihachiroさん

    レスありがとうございます。ちゃわです。
    インポートされてることの確認ですが、WordPressの記事の編集画面で見ても全文が表示されましたし、phpMyAdminで調べても記事全文が入ってました。ですから、MySQLのテーブルに正しく格納されてることは間違いありません。長い記事といっても、およそ10KB程度の記事です。
    また、記事の長さを調節して、表示されたり表示されなくなるというのは、文章の最後に文字を加えたり減らしたりしてテストしました。完全にタグの外で長さを変えてのテストです。その微妙な境目が7100バイト程度の長さでした。
    今回ロリポップへ移転する前は、旧サーバで問題なく記事本文とコメントが表示されていました。テンプレートは旧サーバと同じものを入れて、同じように設定しています。

    以前のサーバで問題なく表示されていたものが、移転後のサーバでは表示されなくなったというのであれば、原因はサーバにあるのでしょうね。

    個人的にはやはりMySQLのスレッド数制限か何かにひっかかっている様な気がしますが、ロリポップに直接状況を説明して原因を確定された方が解決が早いかと思われます。

    トピック投稿者 chawa

    (@chawa)

    Heihachiroさん

    レスありがとうございます。ちゃわです。
    実はWordPressのバージョンに関してですが、3.0をインストールしたのは今回のロリポップサーバーが初めてです。ロリポップにはいくつかのCMSを簡単にインストールできる機能があり、その機能を使ってインストールしたら3.0でした。

    以前のサーバで使ってたのは少し前のバージョンだったので、ロリポップでそのときと同じ古いバージョンを手動でインストールし、もう少し状況をはっきりさせようかと思います。もし自分で手動インストールした古いWordPressで正常に記事を表示できれば、そのことも含めてロリポップに問い合わせてみようかと思います。テストしたらこの掲示板にも結果を書きます。

    う~ん、そもそも「テーマをデフォルトに戻す」や「プラグインを全て止めてみる」などの基本的なことは行っていますか?その上で現象が変わらないと言うのであればサーバーに因るものと考えられますが・・・上記文章からは旧と同じ設定というだけで、肝心な切り分けを行っていないように思えますけど。

    トピック投稿者 chawa

    (@chawa)

    shokun0803さん

    レスありがとうございます。ちゃわです。
    実はデフォルトのテーマでプラグインを全て止めても、当該記事だけは本文が表示されずに困ってました。それでフォーラムに投稿した次第です。

    結論を書きますと、実は1つ導入し忘れてたプラグインがあり、それを導入したことで記事本文が表示されるようになりました。そのプラグインは brBrbr です。複数改行を単一改行にせず、そのまま表示するプラグインです。

    いろいろテストしてみてバージョン3.0のデフォルトテーマで気付いたことを書いておきます。

    Twenty Ten 1.0 : the WordPress team 作
    当該記事は古い記事なのでアーカイブからその月を表示すると、各記事の先頭部分が表示され、その後ろに「続きを読む →」のリンクが表示されます。この画面では記事の先頭部分が表示されていました。しかし、そのリンクから当該記事を表示すると、本文は表示されず、コメントだけの表示になります。

    wp.Vicuna 2.0.3 : wu, nic 作
    アーカイブも単一記事も、記事本文は表示されませんでした。

    どちらのデフォルトテーマも、brBrbr を有効にすると記事本文が表示されます。普通なら何か問題が起きたとき、プラグインを全て止めてテストしますが、今回はプラグインの導入で問題が解決しています。WordPress自体の不具合のように思えますが如何でしょうか?

    プラグインの中には記事内に独自のタグを挿入したり、それに準じた動作をするプラグインがあり、そういうプラグインで作成された記事をプラグインを無効化した状態で参照すると不具合が起きる可能性があります。

    ところで以前使っていたWordPressのバージョンでは同じ現象が起きましたか?同じ現象というのはbrBrbrを無効化した状態と有効化した状態で記事の表示が違うという事です。以前のバージョンでも同じ現象が確認されれば、プラグインが原因の可能性が増すのでは無いでしょうか?

    WordPressの不具合であると確認するなら、他に考えうる可能性を全て潰さなければなりません。その場合は私には少々荷が重くなりますので、他のもっと詳しい方に回答をお任せしたいと思います。

    トピック投稿者 chawa

    (@chawa)

    Heihachiro様

    レスありがとうございます。ちゃわです。
    以前使ってたバージョンは2.8.1です。旧サーバは海外の無料サーバで、アカウントは残ってますが、DNSの不調で既にアクセスできなくなっています。そのため、2.8.1を現在使っているロリポップにインストールして確認してみました。

    2.8.1のデフォルトテーマでテストしたところ、brBrbrを導入する前は記事本文が表示されませんでしたが、導入して有効にすると記事本文が表示されました。

    当該記事を50通りほど変更しながら確認しましたが、何が原因なのかまだはっきりしていません。アップロードした画像表示の部分、または「ρ」などのギリシャ文字(2バイト文字)の処理が関係してるような気がします。しかし、何か一つの条件で問題を起こしてるというより、複数の条件が重なったときに問題が発生している感じです。

    今後も引き続き問題発生の再現性についてテストしていきます。なかなか再現性についてはっきりしない場合は、WordPress自体のPHPソースを解析することも考えています。いずれにせよ時間がかかると思いますが、何か解り次第このスレッドに追記していきますので、今後も宜しくお願いします。

    う~ん、PHPのコードを読めるならWordPressのコアファイルより brBrbr のコードを読んで、何故 brBrbr を有効化した時のみ記事が表示されるか考えた方が早いと思いますけどね。
    http://camcam.info/wordpress/101
    こちらのプラグインですよね。40行弱の単純なコードですよ。

    ひとつお尋ねしておきたかった事を忘れていました。brBrbr を無効化をした場合に記事が表示されなくなるという事ですが、これはブラウザから見た時のみですか?出力されたHTMLのソースの方では記事はどうなっているでしょうか?さしつかえなければ該当のページのURLを教えていただればありがたいです。

    2.8.1のデフォルトテーマでテストしたところ、brBrbrを導入する前は記事本文が表示されませんでしたが、導入して有効にすると記事本文が表示されました。

    できれば WordPressのコアファイルも2.8.1で試して欲しかったです。もしWordPressの不具合だとした場合、それが3.0特有の問題なのかそうでないのか切り分けができるからです。

    トピック投稿者 chawa

    (@chawa)

    Heihachiroさん

    何度もありがとうございます。ちゃわです。
    brBrbr自体のソースも見てますが、今回の現象の発生条件がなかなか掴めないため、WordPressのソースも見ようかと思いました。

    ロリポップに以前のWordPress 2.8.1を2つインストールして、違いを確認できるようにしました。現象としては2.8.1も3.0と同じです。brBrbrを導入していない方は、単にブラウザで記事本文が表示されないだけではなく、HTMLのソース上にも記事が出力されていません。

    【brBrbrを導入していないWordPress 2.8.1】
    http://chawa.ws/brbrbr_no/2009/09/defectivebeans/

    【brBrbrを導入して有効に設定したWordPress 2.8.1】
    http://chawa.ws/brbrbr_yes/2009/09/defectivebeans/

    もしHTMLソースをうまく見られない場合は、一度ブラウザのキャッシュを削除してから、画面を再表示してみて下さい。

    define('WP_DEBUG',true);でデバッグしましたか?

    brBrbrを導入していない方は、単にブラウザで記事本文が表示されないだけではなく、HTMLのソース上にも記事が出力されていません。

    そうですか、brBrbrがhtmlタグをいじるタイプのプラグインのようなので、なんらかの原因で文法エラーが発生しているのではないかと思ったのですが違ったようです。

    なおこちらでも以下の環境で該当ページの記事をソースからコピー&ペーストして投稿記事を2つ作成し、それぞれbrBrbrを無効化した状態と有効化した状態で記事が表示されるかどうか試してみましたが、結論として全てのケースで問題なく記事が表示されました。つまり私の環境では不具合が確認されなかったという事です。

    テスト環境
    サーバ:xrea
    Apache:1.3.37
    PHP:5.2.5
    MySQL:5.1.22-rc
    WordPressのバージョン:3.0
    WordPressのテーマ:Twenty-ten1.0
    brBrbrを有効化した状態で、記事をソースからコピーして作成
    brBrbrを無効化した状態でも、同じようにソースから記事を作成
    他のプラグインは全て停止状態

    これでまたWordPressやプラグインのコードが問題なのか、サーバの環境に依存する問題なのか解らなくなってしまいました。

    残念ですが今わかっている情報では、私の乏しい知識でこれ以上力になれそうにありません。結果としてあまり力になれなくて心苦しいですが、誰かもっと詳しい方の回答を待った方が良いかも知れませんね。

    トピック投稿者 chawa

    (@chawa)

    >takuyaさん

    WordPress 2.8.1でデバッグモードにして実行した結果です。
    アーカイブの画面では、記事本文が表示されないことに関しては特にメッセージが表示されません。single.phpでは以下のメッセージが表示されますが、これは当該記事だけではなく、他の記事でも表示されています。

    Notice: Undefined variable: time_since in /インストールディレクトリ/wp-content/themes/default/single.php on line 34

    以下の部分です。
    <?php printf(__('This entry was posted %1$s on %2$s at %3$s and is filed under %4$s.', 'kubrick'), $time_since, get_the_time(__('l, F jS, Y', 'kubrick')), get_the_time(), get_the_category_list(', ')); ?>

    >Heihachiroさん

    お手数をお掛けしました。ありがとうございます。
    現象としては、プラグイン brBrbr を導入していないと記事本文が消えて、プラグインを導入すると問題が解決します。プラグインのバグが記事を消してるのではなく、逆にプラグインの導入で記事が正しく表示されています。
    もう少し時間をかけて原因を探っていきたいと思います。

    またまた横から失礼いたします。

    単純な話ではないかと推測いたします。brBrbrを入れることによってxhtmlの文法違反が発生します。そもそもWordPressにはxhtmlの文法違反を修正する機能があり、それを回避するためにbrBrbrを入れているのでしょうけど、WordPressでは修正されたものと判断してコードを生成するのでしょうから、修正されていないxhtmlをWordPressの関数が処理できないのでしょう。

    回避策は以下の2つでしょうかね。
    ・brBrbrを止めて正しいxhtml文法で投稿する(推奨)
    ・WordPressのコアを修正し、間違ったxhtmlでも処理が可能なように編集。

    当然だとは思いますが、間違った文法でも処理が可能なようにすることをWrodPress側がバグとして受け入れてくれるとは思いません;)

    ああ、追記です。文法違反にならない改行プラグインを作ってる方がいましたよ。日本人の方で。このフォーラムの自作品紹介になかったかな?

    現象としては、プラグイン brBrbr を導入していないと記事本文が消えて、プラグインを導入すると問題が解決します。プラグインのバグが記事を消してるのではなく、逆にプラグインの導入で記事が正しく表示されています。

    もちろん解っております。brBrbrは記事の編集時にもhtmlタグをいじるようなので、それで文法エラーが発生しているのではないかと思っていたのです。前にも言いましたが、プラグインの中には記事内に独自のタグを挿入したり、それに準じた動作をするプラグインがあり、そういうプラグインで作成された記事をプラグインを無効化した状態で参照すると不具合が起きる可能性があります。この場合はプラグインを有効化すれば記事が正しく表示されるのは当然です。バグはプラグインではなく、プラグインが作ったデータにあるのです。

    私の方は今回の場合、単純にブラウザが処理できてないのではと思っていましたが、shokun0803さんが私が考えていた以上の事を言ってくださいました。

    ただ私がテストした結果では、brBrbrをOnにした状態で作成した記事もOffにした状態で作成した記事も、どちらも閲覧時には brBrbrをOnにしてもOffにしても記事が表示されましたので、この辺は私にはなんとも言えません。きちんと表示された記事のソースをコピーしたからなのか、どうなのか判断がつかずにいるところです。

    お手すきの時にでも、私がやった事と同じ事をchawaさんの環境でも試していただければ幸いです。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • トピック「長い記事が表示されない」には新たに返信することはできません。